产品分类

联系方式


地址:
手机:
Q Q:

网址:http://www.logbook-loans.net

新闻动态

当前位置:官网首页 > 新闻动态 >

STM32单片机的USART接收数据问题解决方案

发布时间:2018-12-07 09:54 浏览次数:

先使用USART中断函数接收数据,判断是否接收到每帧数据的起始标记字符。如果接收到就关闭USART中断,然后开启DMA用于后续串口数据的接收。但是出现一个问题是每帧数据的起始标记为:A5 4A 05 00 00 40 81

然后开启DMA传输后所接收收到的第一个数据为0x81,也就是起始标志字符的最后一个数据。

STM32单片机的USART接收数据问题解决方案

造成这样问题的原因是:

在USART初始化时使用了函数:USART_DMACmd(USART1,USART_DMAReq_Rx,ENABLE);

虽然此时DMA没有被使能,但是硬件上已经开始做DMA传输检测了。

解决办法:

将函数:USART_DMACmd(USART1,USART_DMAReq_Rx,ENABLE);从串口初始化函数中删除掉,然后和使能DMA传输函数放在一起。这样就成功解决问题了。


公司简介| 新闻动态| 产品展示| 生产设备| 销售网络| 合作客户| 联系我们
Copyright © 2018 AG环亚国际娱乐AG环亚国际娱乐_ag环亚娱乐_环亚国际娱乐 All Rights Reserved
地址: 电话:
QQ: 邮箱: