Advertisement

在线调试时运行代码正确/关闭重启电源代码运行不正确

阅读量:

目录

一、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)

还没有任何评论哟~