这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 串口通信速度过快导致单片机重启??

共19条 2/2 1 2 跳转至
工程师
2012-06-04 18:00:14     打赏
11楼
问题看的很晕,提高波特率,自动发送周期就比单片机发送数据的时间长是什么意思?串口是全双工的,即使发送接收重叠按说也没啥问题。最多就是接收错误什么的。串口通信怎么也不会引起芯片重启呀。有点奇怪。溢出问题收发程序也看不出来。关注~~~

菜鸟
2012-06-05 22:00:56     打赏
12楼
嗯嗯,对呢,双工的都会发生这样的问题。而且在发送的时候把REN清零就不会出现这样的情况。
另一个原因,如果波特率为19200,串口发送一段数据时间大概为8ms左右,单片机接收到之后,返回一串数据,所用时间大概为9ms左右。而这个时候,如果自动发送周期设置为17ms以上就不会出现重启情况。但是如果是小于17ms以下就会出现重启。

但是,如果把波特率提高,自动发送周期最小值则会降低,达到57600的时候,1ms都会有问题了。这个时候是因为,串口发送数据的时间+单片机返回数据的时间<1ms,所以就不会有问题了。


以上问题,换了几个单片机都是这样,不知道是什么原因。

也许是程序上的原因。

附上程序rar空调面板4k.zip

菜鸟
2012-06-05 23:04:16     打赏
13楼
又发现问题了?把波特率提高到115200,单片机发送一串数据20个字节,所需要的时间是0.0017s,但是自动发送周期为1ms都可以发送无误,而且也没有错误。

也就是说和自动发送周期没大小没有多大关系??

菜鸟
2012-06-05 23:14:07     打赏
14楼
结果发现,连续发送再长一点的数据,波特率再高也会出错了。{:sad:}

菜鸟
2012-06-28 13:18:55     打赏
15楼
降低波特率看看,死机的时间是不是延缓了?

逐步屏蔽代码看看,可以直接一个bit不处理,不开缓存处理数据,先定为问题

菜鸟
2012-06-30 12:34:50     打赏
16楼
你的波特率是按照你芯片手册上要求配置的吗?用的内部还是外部的晶振?

高工
2012-08-10 20:47:38     打赏
17楼
其他功能程序呢,会不会是其他程序造成的复位啊

菜鸟
2012-09-19 16:59:53     打赏
18楼
查查看门狗吧

工程师
2012-09-29 09:43:44     打赏
19楼
自动发送太快我就遇到上位机自动关闭了

共19条 2/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]