你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

为什么STM32F103程序运行3次才结束?

[复制链接]
luokanx 提问时间:2017-9-13 15:41 /
本帖最后由 luokanx 于 2017-9-13 15:45 编辑

使用MDK编译器,发现每次程序都会运行3次才结束,不知道各位大大有遇到过吗?怎么才能避免这个啊。以前也遇到过,只是一直没怎么在意,今天又出现了。

程序如下:

int main(void)

{
  int a;
  u16 adcx;
  float temp;
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);
  delay_init();
  LED_Init();
  delay_ms(10);
  uart_init(115200);
  Motor_Init();
  Adc_Init();
   TIM1_Cap_Init(0XFFFF,72-1);  
  PAout(2)=1;
  PAout(7)=0;
  PBout(0)=1;
  PBout(1)=0;
  
  
  for(a=0;a<10;a++)
  {
   adcx=Get_Adc_Average(ADC_Channel_0,10);
      temp=(float)adcx*(3.3/4096);
   printf("%d:v1=%f \r\n",a,temp);
   
   adcx=Get_Adc_Average(ADC_Channel_1,10);
      temp=(float)adcx*(3.3/4096);
   printf("%d:v1=%f \r\n",a,temp);

   
  }
  
  return(0);
}

运行结果:




1.png
收藏 评论13 发布时间:2017-9-13 15:41

举报

13个回答
gujiamao 回答时间:2017-9-13 15:49:32
看不出啥问题,要不你在return0之前加个while(1)吧
luokanx 回答时间:2017-9-13 15:52:59
gujiamao 发表于 2017-9-13 15:49
看不出啥问题,要不你在return0之前加个while(1)吧

没用啊。。。你没有遇到过?
张亚飞 回答时间:2017-9-13 16:01:15
一点一点调试吧,先把for循环去掉,再把循环加大。
废鱼 回答时间:2017-9-13 16:11:00
本帖最后由 安 于 2017-9-13 16:43 编辑

应该是复位导致的,如二楼说的,价格while(1)死循环。注意代码优化,如果光写一个while会优化掉。
luokanx 回答时间:2017-9-13 16:39:53
安 发表于 2017-9-13 16:11
应该是复位导致的,如二楼说的,价格while(1)死循环。注意代码优化,如果光写一个while会有花掉。 ...

什么复位造成的哟?
废鱼 回答时间:2017-9-13 16:43:52
程序异常。
luokanx 回答时间:2017-9-13 16:45:40
张亚飞 发表于 2017-9-13 16:01
一点一点调试吧,先把for循环去掉,再把循环加大。

还是会运行3次
张亚飞 回答时间:2017-9-13 17:02:44
打断点找找。
luokanx 回答时间:2017-9-13 17:40:12
gujiamao 发表于 2017-9-13 15:49
看不出啥问题,要不你在return0之前加个while(1)吧

加个while(1)确实可以,重新试了一下。
gujiamao 回答时间:2017-9-14 09:06:41
luokanx 发表于 2017-9-13 17:40
加个while(1)确实可以,重新试了一下。

单片机的main函数是不能执行到返回的
MrJiu 回答时间:2017-9-14 10:51:30
可一直接看启动文件的,main本来是一去不复返的函数,结果你main有返回。。。可以看一下启动文件里面mian函数跳出来后,执行了啥,不就知道了?

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

luokanx 回答时间:2017-9-25 17:57:22
MrJiu 发表于 2017-9-14 10:51
可一直接看启动文件的,main本来是一去不复返的函数,结果你main有返回。。。可以看一下启动文件里面mian函 ...

谢谢
luokanx 回答时间:2017-9-25 17:57:41
gujiamao 发表于 2017-9-14 09:06
单片机的main函数是不能执行到返回的

谢谢大侠

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版