在线调试时运行代码正确/关闭重启电源代码运行不正确
发布时间
阅读量:
阅读量
目录
一、BUG现象
二、测试代码和硬件原理图
三、故障复现
四、优化延时时间
五、总结
系统启动过程中,供电电压低于芯片POR阈值,从而引发在线调试状态下代码执行异常,无法实现电源重启后的正常运行。通过在初始化流程前引入合理的延时设置,该问题得以有效解决。
一、BUG现象
项目迁移至新平台后,在代码移植过程中出现以下现象:
1、将程序烧录至STM32开发板后,重新上电后程序运行结果与预期存在偏差;
2、为验证是否因电源重启导致板子未复位,特在主函数入口处添加软件复位操作,测试结果仍与第一种情况一致;
3、通过Keil软件进行在线调试时,程序执行过程符合预期,PB1及TXCAN引脚均能输出正常的波形信号。
二、测试代码和硬件原理图
代码执行的框架结构如下:首先完成SPI3的初始化操作,随后借助SPI3对MCP2517芯片进行初始化配置。在主循环中,系统每隔20毫秒切换一次PB1的状态,并通过SPI接口向MCP2517发送相应的数据信息。
int main(void)
{
MX_SPI3_Init(); //SPI3控制CANFD芯片MCP2517
CANFDSPI_Init(); //初始化CAN FD
全部评论 (0)
还没有任何评论哟~
