分享一下F1的DMA+USART1串口不限字节接收模式!

2019-10-11 16:44发布

1.这里有个BUG,在DMA串口接收无中断时(上电第一次接收),接收到的第一字节总数丢失,后续再次接收字节倒是没有字节丢失问题,就是第一次上电通信时候出现。
2.调试SW及JTAG时候又没有问题,无论是否第一次上电初始化通信怎么都没有问题,找了挺久的都没找到问题所在,挺神奇的。
3.为了解决这个问题特意开启了上电初始化接收第一字节进行中断,中断完后续关闭这个中断。
USART中只用到void uart_init(u32 bound);void  Start_DMAUsart1(void);void USART1_IRQHandler(void) ;void AddrUp(void);u8 DataDmaManage(void);void Usart1DMAProcess(void)这几个函数;DMA中只用到void RX_DMA_Config(DMA_Channel_TypeDef *  DMAy_Channelx,u32 cpar,u32 buff,u16 Buffsize);这个函数。这里测试用的最大字节接收为6字节。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
精神不死6530
1楼-- · 2019-10-11 19:45
串口配置好,直接send,第一个字节可能会发不出去,清下发送标志位试试,USART_ClearFlag(USART1,USART_FLAG_TC)
iseeyouto
2楼-- · 2019-10-12 01:24
 精彩回答 2  元偷偷看……
八度空间
3楼-- · 2019-10-12 06:21
谢谢分享!
xiaoergao
4楼-- · 2019-10-12 09:07
非常棒,赞一个
正点原子
5楼-- · 2019-10-12 14:29
谢谢分享
钩月黄昏
6楼-- · 2019-10-12 15:24
我为什么灭有出现丢字节的情况呢?

一周热门 更多>