详情描述
已尝试解决的方法及结果
我做的尝试如下:
1. 在中断文件里面添加这个宏定义,如果是除法出错会有提示,但并未有提示
#define DIV_SAFE(a, b) ({ \ if (b == 0) \ { \ printf("DIV0! File: %s Line: %d\n", __FILE__, __LINE__); \ } \ a / b; \ })
2. 在一个新的光板上面只做最小系统,只用呼吸灯不怎么会卡死,逐步加了按键等操作就小概率卡死。我的按键判断是在中断里面做的,获取到低电平达到有效时间就会给一个结构体的对应值置1,松开则复位。主函数获取这个结构体的值就知道是否按下。但这些代码框架我在之前的板子都没有问题,按道理不会移植过来就出错的。
3. 之前的板子我用0、1、2串口发数据,3、4串口取消掉给sdio接口使用,但这次的板子没有tf卡,因此我还用了串口4,但串口4的初始化之前我禁用了sdio接口。所以应该不是接口冲突
4. 之前的板子MCU的boot0引脚串联10k的电阻到地,boot1串联10k的电阻到3V3,但JTDO、NJTRST、、JTDI三个脚都被我复用为pwm或者io了。但这次的板由于io数量充足,我在dsp的建议下把boot1、JTDO、NJTRST、、JTDI4个引脚分别串联10k的电阻到地,后面老是卡死我又把JTDO、NJTRST、、JTDI的电阻去掉,现在它们是悬空状态的
5. 之前我是用的外部8M晶振,这次也有接,但是老是卡死。我就改成使用内部晶振,但还是卡死,不过外部晶振电路并未去掉
硬创社



登录 或 注册 后才可以进行评论哦!
还没有评论,抢个沙发!