AI8051U卡中断
我在使用8051u的时候遇到一个问题代码里开启全部中断,定时器0123全部启用,定时器2用于串口发送数据,定时器0,1都开10ms中断中断目前没放代码,定时器3里运行差比和计算只有+—*/运算外加PID均为整数运算和浮点数运算+ADC采集定时器间隔10ms,单片机跑着跑就会导致中断卡死,将官方数学库lib移除即可解决问题,math头文件也加了,但是后面不知道为什么移除lib也无法解决中断卡死的问题,希望各位大佬帮忙,6 附上代码
下载进去中断不会马上开死要运行一会之后会随机卡死 打开的中断必须要有中断函数
主频接近极限频率要正确配置IAP_TPS
使用数学库不要使用REMOVEUNUSED 我三个中断都有中断函数,至于你说“主频接近极限频率要正确配置IAP_TPS”具体应该怎么操作“使用数学库不要使用REMOVEUNUSED”修改了没作用
设置了IAP_TPS=40; 你说的方案我都试过了并没有解决我的问题
nkgdream 发表于 2025-2-28 14:53
你说的方案我都试过了并没有解决我的问题
问题很简单,通过屏蔽部分代码来逐渐定位就可以定位到了
原因是串口中断函数中没有对接收标志位清零,并且初始化代码中,对RXD配置为了高阻输入状态,此时端口电平不定,极其容易受到外部干扰造成电平信号波动。
如果接收到外部的低电平信号,则会导致S4RI产生一个中断标志,而在中断函数中又未对这个标志进行清零处理,所以就会导致反复的进入串口4中断
添加这段代码后解决问题
程序中的IO口配置
使用小程序解析后为此状态:
以下是修改好后验证通过的工程文件:
页:
[1]