有没有人用F407做过不定长度的数据串口DMA通信,就是电脑通过串口发不定长度的数据,通过DMA方式接收,再通过DMA方式发送? 目前我做过的是定长度的DMA发送与接收,至于不定长度的,开始打算用总线空闲中断来做,但是发现好像有点问题,然后打算用定时器去做。 有几个疑问: 1、什么时候开启定时器? 2、怎么清楚存储器数组的数据?比如数组大小为200,接收的数据长度为10,那么第二次接收到的数据是从11开始存储的,如果要发送新的数据,一定要自己去计算位置吗? 3、由于是判断在定时时间内,如果缓存区的剩余的大小不变时说明没有新的数据接收了,那么怎么处理好2次读缓存区的大小呢? |
STM32F407 定时器触发DMA 求助大神
【MCU实战经验】基于STM32F407的音频播放器设计
盘古UE-STM32F407工控板原理图
【STM32F429心得\疑问】+STM32F4之FSMC和FMC
STM32F429读取IO口传输的数据速率
STM32F407ZGT6 手摸芯片背部重启
STM32F4 SPI 动作时,软件片选信号被拉高,IO口程序逻辑失控
STM32F401RE NUCLEO求助,串口一直不能进中断
读取STM32F407内部温度传感器值错误
STM32F429多路内部ADC独立采集的办法
你可以用两个数据指针和两个计数变量指向同一个数据缓冲区,做成像windows操作串口那样出来串口缓存,比如说当你读取数据的时候你读的是0到10的地址数据,但是这时串口同时也在接收呢,这时用另一个指针指向11地址的位置,记录下次要读取的位置,这次读完以后要把0到10地址的数据清空,再次读取就从11往后读取。第一个指针就指向第二次数据的下一位。,数据存储的缓存区是循环的 比如存储区范围是20 ,第一次存的是1--8第二次就是9--16第三次就是17--4。数据循环存放