stc12c5a60s2的芯片做了一个程序,主要用到两个串口和两个定时器,c编写的, 为什么程序

stc12c5a60s2的芯片做了一个程序,主要用到两个串口和两个定时器,c编写的,为什么程序跑个半个多小时就跑飞了??半个小时以后,有时候好的,有时候直接失控!引起程序... stc12c5a60s2的芯片做了一个程序,主要用到两个串口和两个定时器,c编写的, 为什么程序跑个半个多小时就跑飞了??半个小时以后,有时候好的,有时候直接失控!引起程序跑飞的因素有哪些?代码大概六七千行左右! 展开
 我来答
NJGQZF
推荐于2017-09-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1200万
展开全部
引起程序跑飞的因素主要有三个:
其一是软件错误,比如汇编语言编程使用了直接地址跳转(没有使用标号),而地址输入或计算错误,产生错误跳转(目标地址落入数据区或者不在指令起始位置),或者操作堆栈不匹配等。这在C语言中不容易出现。

其二是编译器错误,即编译器有BUG,这个我遇到过(汇编语言)。也是小概率事件。
其三是干扰造成,这个最普遍。干扰信号造成程序计数器值错乱,后果难于预期。
更多追问追答
追问
那怎么屏蔽?   干扰
干扰是挺大的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式