سلام
میخواهم توسط میکرو stm32f103 و کتابخانه cmsis تحت spi با dma دیتا ارسال کنم ولی به دلیل سرعت بالای dma و سرعت پایین گیرنده امکان ارسال سریع دیتا پشت سر هم وجود نداره برای اینکار اومدم تریگر dma که به spi وصل بود رو فعال نکردم و تایمر 3 رو روی حالت وقفه آپدیت فعال کردم و اومدم تریگر dma رو روی حالت آپدیت تایمر گذاشتم ( چون دارم از dma1_channel3 استفاده میکنم وقفه آپدیت تایمر سه به این dma وصله) اینکارو که کردم spi درست کار نمیکنه ولی وقتی تریگر رو روی حالت spi میذارم دیتا رو میفرسته ولی به دلیل سرعت بالا دیتا اشتباه ارسال میشه الان وقفه تایمر درست کار میکنه چون به تعدادی که باید DMA دیتا ارسال کنه وقفه صورت میگیره و وقتی ارسال تموم شد وقفه اتمام DMA هم به درستی اجرا میشه . حالا نمیدونم مشکل چیه وقتی تریگر DMA رو روی تایمر میذارم SPI از کار می افته.
کسی میدونه ؟ خیلی مهمه برام
فکر میکنم از این روش برای ارسال دیتا به LCD های TFT استفاده میکنن تا دیتا توسط DMA سر زمان مقرر که تایمر تعیین میکنه به GPIO برسه.
ممنون
میخواهم توسط میکرو stm32f103 و کتابخانه cmsis تحت spi با dma دیتا ارسال کنم ولی به دلیل سرعت بالای dma و سرعت پایین گیرنده امکان ارسال سریع دیتا پشت سر هم وجود نداره برای اینکار اومدم تریگر dma که به spi وصل بود رو فعال نکردم و تایمر 3 رو روی حالت وقفه آپدیت فعال کردم و اومدم تریگر dma رو روی حالت آپدیت تایمر گذاشتم ( چون دارم از dma1_channel3 استفاده میکنم وقفه آپدیت تایمر سه به این dma وصله) اینکارو که کردم spi درست کار نمیکنه ولی وقتی تریگر رو روی حالت spi میذارم دیتا رو میفرسته ولی به دلیل سرعت بالا دیتا اشتباه ارسال میشه الان وقفه تایمر درست کار میکنه چون به تعدادی که باید DMA دیتا ارسال کنه وقفه صورت میگیره و وقتی ارسال تموم شد وقفه اتمام DMA هم به درستی اجرا میشه . حالا نمیدونم مشکل چیه وقتی تریگر DMA رو روی تایمر میذارم SPI از کار می افته.
کسی میدونه ؟ خیلی مهمه برام
فکر میکنم از این روش برای ارسال دیتا به LCD های TFT استفاده میکنن تا دیتا توسط DMA سر زمان مقرر که تایمر تعیین میکنه به GPIO برسه.
ممنون
دیدگاه