打印
[STM32F1]

F1硬件复位或者重新上电复位后程序不能运行

[复制链接]
754|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大家好,
最近遇见了个问题,程序写好后通过USB串口烧进去可以正常运行,但是重新上电或者硬件复位后程序就不动了,用示波器测量复位引脚发现MCU一直在复位,这个问题可能是什么原因呢?复位信号如图
BOOT0 BOOT1都是低电平从Flash启动。板子上存在一键下载电路

代码如下:

int main(void)
{

  HAL_Init();

  MX_GPIO_Init();
  MX_DMA_Init();
  MX_TIM1_Init();
  MX_I2C1_Init();
  MX_USART1_UART_Init();
  MX_ADC1_Init();

HAL_ADC_Start_DMA(&hadc1,ADC_volume,100);

  while (1)
  {
    HAL_Delay(500);
    for(i = 0,AD1_CH1 =0,AD1_CH2=0; i < 100;)
    {
        AD1_CH1 += ADC_volume[i++];
        AD1_CH2 += ADC_volume[i++];
    }
    AD1_CH1 /= 50;
    AD1_CH2 /= 50;

    printf("\r\n******** ADC DMA Example ********\r\n\r\n");
    printf("AD1通道一电压:%.2fmV\r\n",AD1_CH1*3300.0f/4096);
    printf("AD1通道二电压:%.2fmV\r\n",AD1_CH2*3300.0f/4096);

    HAL_Delay(500);

  }
}

复位图片.png (16.45 KB )

复位图片.png

使用特权

评论回复
沙发
香水城| | 2020-2-17 13:10 | 只看该作者
比较怀疑你硬件线路方面的问题,尤其电源这块。

再就是BOOT脚的配置是否正确了,检查下电平是否稳定。 保证代码是运行你的而不是跑到别的系统区了。

都是不难的小细节,好好检查确认下。

使用特权

评论回复
板凳
Hufei1994|  楼主 | 2020-2-17 19:39 | 只看该作者
香水城 发表于 2020-2-17 13:10
比较怀疑你硬件线路方面的问题,尤其电源这块。

再就是BOOT脚的配置是否正确了,检查下电平是否稳定。 保 ...

感谢版主回答,问题已找到,是程序下载时的设置问题。红框内的选项不能勾选,版主知道这是啥意思么?我也是一知半解

FLYMCU.jpg (130.34 KB )

FLYMCU.jpg

使用特权

评论回复
地板
香水城| | 2020-4-7 14:28 | 只看该作者
Hufei1994 发表于 2020-2-17 19:39
感谢版主回答,问题已找到,是程序下载时的设置问题。红框内的选项不能勾选,版主知道这是啥意思么?我也 ...

应该是你改写了option字节内容,而且从你的描述来看,很可能是写的一些你不知晓的默认内容,从而导致程序烧写完毕后功能异常。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

160

帖子

0

粉丝