打印
[STM8]

求助香水城,使用内部晶振UART接收250K左右速率数据死机

[复制链接]
2060|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XproMichael|  楼主 | 2012-11-18 19:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 XproMichael 于 2012-11-18 20:42 编辑

情况如下:
内部16M晶振,串口接收250Kb/s 数据,
定时器4 200us中断
2秒不到MCU就死机
不接收数据工作正常工作
这种情况是否跟使用内部晶振或堆栈不够有关?
求大神 助
沙发
XproMichael|  楼主 | 2012-11-18 19:40 | 只看该作者
128KB/S又没事 求救啊

使用特权

评论回复
板凳
XproMichael|  楼主 | 2012-11-19 08:44 | 只看该作者
香主来了吗?帮帮忙

使用特权

评论回复
地板
XproMichael|  楼主 | 2012-11-19 08:45 | 只看该作者
顶起,急啊

使用特权

评论回复
5
zhaoyu2005| | 2012-11-19 09:04 | 只看该作者
串口的容错能力太差了,且不管内部时钟准确度咋样,即使接收到错误数据或者不完整bit,也不能死机,要超时退出。

使用特权

评论回复
6
XproMichael|  楼主 | 2012-11-19 19:33 | 只看该作者
谢谢朋友帮助,今晚再试试

使用特权

评论回复
7
IJK| | 2012-11-19 22:13 | 只看该作者
建议用ST-LINK连上,调试一下,按理STM8不会死,连上调试器就容易看出CPU跑到什么地方

使用特权

评论回复
8
baidudz| | 2012-11-19 23:19 | 只看该作者
香主似乎最近很忙

使用特权

评论回复
9
sinadz| | 2012-11-19 23:28 | 只看该作者
连上ST-LINK测试一下

使用特权

评论回复
10
txcy| | 2012-11-19 23:42 | 只看该作者
香主似乎最近很忙
baidudz 发表于 2012-11-19 23:19

香主好像很久都没出现了,很多人都在呼唤你

使用特权

评论回复
11
yinchunhua| | 2012-11-20 13:42 | 只看该作者
应该和软件代码有关,串口中断里面最好只保存数据(用队列方式),不要做太多事情,否则频繁中断,又处理不过来,必然崩溃。

使用特权

评论回复
12
香水城| | 2012-11-20 16:25 | 只看该作者
死机是什么意思?

HARDFAULT了吗?任何猜测都是没有意义的,需要做的是调试,找到真正的原因


www.stmcu.org

在资料下载栏目里,找到2012 ST ROADSHOW资料,里面有关于HARDFAULT调试的讲解,可以去具体看看

使用特权

评论回复
13
XproMichael|  楼主 | 2012-11-20 23:33 | 只看该作者
谢谢各位大大的帮助,主要是仿真器在调试的时候烧了。电脑认得了,但是芯片烫得厉害,用不了

使用特权

评论回复
14
a105| | 2012-11-21 17:58 | 只看该作者
算找到原因了吧,可能STM8真的是容错太差了,噪声也产生中断,在噪声中断中也没有清标志位,而导致一直在中断里跑吧,现在解决办法如下:
if(UART2_GetITStatus(UART2_IT_RXNE )!= RESET)  
{
    用户代码;
}
else
{
    UART2->SR;
    UART2->DR;
}

   " UART2->SR;UART2->DR;"根据手册可知可以清TC、IDLE、OR、NF、FE、PE位;可以说除TXE与RXNE位没被清外,别的都被清了,由于我又没有仿真器,所以也看不出到底是那个位被置位。但总体来说是可以正常接收250K/S的数据了。

使用特权

评论回复
15
XproMichael|  楼主 | 2012-11-21 20:06 | 只看该作者
辛苦你了,李工

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

0

粉丝