野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8197|回复: 1

繁星h743电机板串口总是被接收溢出卡死,在线等,很着急

[复制链接]
发表于 2022-8-12 10:53:51 | 显示全部楼层 |阅读模式
21火花
问题描述
用的是繁星h743的电机板,在调试PID的时候,发现上位机给板子串口发PID数据时串口会有一定的概率卡死,也不是一定概率,是必会卡死,但是在上位机上发送PID数据几次卡死是随机的,有时候发送一两次就卡死,有时候是大概五六十次才会卡死,具体现象是出现串口的接收溢出错误标志位被置1,但是死活进不去串口中断,而且串口错误中断也已经使能的。
上位机用的是正点原子,害。。。别问为啥不用野火哥的,不会用啊,板子都买的野火哥的要是会用肯定用野火哥给的上位机啊,话说野火哥有时间能不能再把PID的上位机优化下。
以下是有关的程序:


上面这个串口配置,就是在野火哥的例程后面加了溢出中断使能。
野火论坛202208121051096350..png
上面这个是串口的中断函数,一个是串口的接收中断,一个是串口的溢出错误中断。debug_handle()是原子那边的上位机协议有关的函数,问题应该不大。串口溢出的处理函数中有LED4_TOGG()是用作指示用的,反正经常会有串口溢出,但是不至于死机,但是经常串口溢出是不是正常的啊,我用串口助手自动给板子数据,数据量是116个字节,1ms发一条数据,结果这个led4闪的很快,待会要是能发视频我发个视频,波特率是115200,这种的错误量是不是正常的啊。


野火论坛202208121052184977..png

上面是主函数里面的循环,第二个if是与PID相关的处理,第一个if是判断溢出标志位的,串口卡死的现象就是程序会一直进入到这个if里,led3会不停的闪,但是死活不进中断。  串口都是用的115200的波特率,还有串口每个500ms会向上位机发一次PID的运算结果,数据量搞死不会超过20个字节,是在定时器1中断里面发送,是不是与发送也会有关系 情况基本就是这个情况,搞了快3天了,一直没解决 快来个大佬救救孩子吧。。。。。  

回复

使用道具 举报

 楼主| 发表于 2022-8-12 10:57:15 | 显示全部楼层
串口配置的程序图没了,我在发下
野火论坛202208121057123258..png
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 12:36 , Processed in 0.028805 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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