OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3553|回复: 2

循环DMA+串口,物理拔掉RX线后再接上,很大概率串口无法再接收数据,是为什么?

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2018-2-7
在线时间
4 小时
发表于 2023-2-3 17:40:25 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 jasonxv 于 2023-2-3 17:44 编辑

在测试的时候,无意间拔掉了串口的RX线,再次接回去,就无法产生中断了。
在后面多次实验后,接上后有很小概率会继续接收串口数据。

后面我还测试了每一帧数据(50个字节),间隔50ms发送一次,串口接收非常稳定


//////DMA和串口配置//////////
串口波特率921600

DMA接收启动
HAL_UART_Receive_DMA(&huart1, receive_huart1_data, 100);

串口接收中断
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
    if (huart->Instance == USART1) {
         LED_TOGGLE;
    }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6661
金钱
6661
注册时间
2016-5-29
在线时间
909 小时
发表于 2023-2-4 11:12:39 | 显示全部楼层
尝试增加代码检测UART是不是空闲. M0核的32位机都有这个 UART 空闲中断.没有这个中断的单片机可以自行增加一个空闲判断.
串口空闲时 才去解析分析数据.
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3329
金钱
3329
注册时间
2011-11-10
在线时间
207 小时
发表于 2023-2-5 10:48:00 | 显示全部楼层
RX线拔掉处于浮空状态,看看是不是ORE溢出了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 14:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表