OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 444|回复: 4

如果mian函数里面调的函数里面有return 0,会不会引起单片机复位

[复制链接]

332

主题

495

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1547
金钱
1547
注册时间
2014-7-11
在线时间
256 小时
发表于 2024-7-3 11:29:18 | 显示全部楼层 |阅读模式
2金钱
如果mian函数里面调的函数里面有return 0,会不会引起单片机复位

如:
int main(void)
{
    uint8_t t;
    uint8_t len;
    uint16_t times = 0;

    sys_stm32_clock_init(336, 8, 2, 7);     /* 设置时钟,168Mhz */
    delay_init(168);                        /* 延时初始化 */

               
    led_init();                             /* 初始化LED */
    btim_timx_int_init(10 - 1, 8400 - 1); /* 84 000 000 / 84 00 = 10 000 10Khz的计数频率,计数5K次为500ms */
       
    while (1)
    {
        delay_ms(1);
         t++;
       if(t==200)
     {
      LED1=!LED1;
      t=0;
     led2flag=1;
     return 0;
     }       
       if(led2flag)
     {
         t2++;
           if(t2==200)
         {
          LED2=!LED2;
          t1=0;
         led2flag=0;
        return 0;
        }       

     }
               

}
这里执行到LED1翻转的时候就复位了,LED2永远也不会翻转
为什么会复位

最佳答案

查看完整内容[请看2#楼]

主函数return并不会导致单片机复位,但是main函数会再次被执行。 /* Call the clock system intitialization function.*/ bl SystemInit /* Call static constructors */ bl __libc_init_array /* Call the application's entry point.*/ bl main bx lr 上面这段是从STM32启动文件的第93行开始,启动文件调用main函数,如果main函数退出就会运行bx lr。这时PC指针又会回到main函数入口再次执行。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2024-7-3 11:29:19 | 显示全部楼层
主函数return并不会导致单片机复位,但是main函数会再次被执行。
/* Call the clock system intitialization function.*/
    bl  SystemInit
/* Call static constructors */
    bl __libc_init_array
/* Call the application's entry point.*/
        bl        main
        bx        lr
上面这段是从STM32启动文件的第93行开始,启动文件调用main函数,如果main函数退出就会运行bx lr。这时PC指针又会回到main函数入口再次执行。
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4471
金钱
4471
注册时间
2013-4-22
在线时间
335 小时
发表于 2024-7-3 12:52:05 | 显示全部楼层
没有看门狗不会
回复

使用道具 举报

332

主题

495

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1547
金钱
1547
注册时间
2014-7-11
在线时间
256 小时
 楼主| 发表于 2024-7-6 08:47:23 | 显示全部楼层
我程序加了看门狗,加看门狗会导致复位重启?
回复

使用道具 举报

332

主题

495

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1547
金钱
1547
注册时间
2014-7-11
在线时间
256 小时
 楼主| 发表于 2024-7-6 08:58:28 | 显示全部楼层
程序里面有看门狗程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表