中易网

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

答案:2  悬赏:80  
解决时间 2021-04-27 05:20
stc12c5a60s2的芯片做了一个程序,主要用到两个串口和两个定时器,c编写的, 为什么程序跑个半个多小时就跑飞了??半个小时以后,有时候好的,有时候直接失控!引起程序跑飞的因素有哪些?代码大概六七千行左右!
最佳答案
引起程序跑飞的因素主要有三个:
其一是软件错误,比如汇编语言编程使用了直接地址跳转(没有使用标号),而地址输入或计算错误,产生错误跳转(目标地址落入数据区或者不在指令起始位置),或者操作堆栈不匹配等。这在C语言中不容易出现。

其二是编译器错误,即编译器有BUG,这个我遇到过(汇编语言)。也是小概率事件。
其三是干扰造成,这个最普遍。干扰信号造成程序计数器值错乱,后果难于预期。
全部回答
如果是默认时钟源的话,也就是你没有写任何代码去修改寄存器配置,那么stc12c5a60s2也是默认时钟源=晶振频率/12,那么机器周期=1/时钟源=12/fosc。stc12c5a60s2是一个指令周期等于一个机器周期吧,也就是执行一条指令需要12/fosc秒,假如晶振频率为12mhz,那么执行一条指令需要1us。1s = 1 000 000 us,所以计数个数为1百万个。 辅助寄存器auxr的t0x12和t1x12可以设置定时器的时钟源是否为12分频。建议你多查看这款mcu的datasheet。 以上字字手打,希望对你有帮助
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
钛和玉能放在一起吗
梦幻,80的极品刀剑打满玛瑙总伤多少算极品啊
自考临床医学,大概几门课程
龙鱼之家青龙这两天老是在缸底游,是不是生病
蜀千签串串火锅我想知道这个在什么地方
Focus丶后面要什么名字好听点?
请问谁有三代真人秀
听写时的作文
塑料老化和颜色有关吗
最近有抽奖活动吗
萧山火车站到济南的火车一天几趟,“动车”
一应大小事务是什么意思
仙剑奇侠传一共几部,游戏把名都发来
我的不能回答吗
师旷为什么敢这样对待晋平公
推荐资讯
英国大学和美国大学学费对比
如果地震把银行震倒了,国家会赔偿我们的存款
怎么样点亮问问QQ图标
高手进,使用量子恒道统计,但是统计结果出来
承德距离兰州多少公里
什么样的洗面奶去黑头的效果比较好?
荆门哪里假期学舞蹈最好.15岁的,没基本功..街
随州市曾都区工商局何店工商所地址在什么地方
谁飞车里有酷币赠送我辆车
我测试是阳性,是不是怀孕了
文氏服饰箱包总汇在哪里啊,我有事要去这个地
魔兽世界亡灵盗贼怎么操作/?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?