记一次STM32F429启动自动连续重启问题

文章描述了在使用STM32CubeMX创建STM32F429基础工程时,LED2的闪烁问题。当全速运行时,芯片会自动重启导致LED常亮。解决的关键在于未定义宏USER_VECT_TAB_ADDRESS,作者正在探索原因。

板子为野火开发板F429

现象:
1、使用STM32CubeMX创建基础工程,配置一个引脚为LED
2、在while循环中100ms翻转一次LED

下载运行程序LED灯常亮,亮度较弱,使用在线调试功能,一步一步运行没有问题,但是直接运行就会出现以上问题,经多次测试,定位问题为若全速运行,则芯片会自动重启,由于while程序中第一次翻转为点亮LED,所以在连续重启的过程中LED常亮,但亮度不正常

经过比较其余正常工程,最后发现需要定义宏,USER_VECT_TAB_ADDRESS,目前不清楚为什么

### STM32F407 ADC 配置与使用教程 #### 1. 初始化ADC外设 为了使能并初始化STM32F407上的ADC模块,需先通过RCC(复位和时钟控制)开启对应外设的时钟。对于大多数应用来说,默认设置通常已经足够满足需求。 ```c // 开启ADC1时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); ``` #### 2. 设置ADC参数 接下来要定义一些基本的工作模式选项,比如扫描方向、连续转换还是单次触发等特性。这些都可以通过结构体`ADC_InitTypeDef`来完成配置[^1]。 ```c ADC_InitTypeDef adc_init_struct; adc_init_struct.ADC_Mode = ADC_Mode_Independent; // 单独工作模式 adc_init_struct.ADC_ScanConvMode = DISABLE; // 关闭扫描功能 adc_init_struct.ADC_ContinuousConvMode = DISABLE; // 禁用连续转换 adc_init_struct.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;// 不使用外部触发源 adc_init_struct.ADC_DataAlign = ADC_DataAlign_Right; // 数据右对齐 adc_init_struct.ADC_NbrOfConversion = 1; // 转换次数为一次 ADC_Init(ADC1, &adc_init_struct); ``` #### 3. 配置通道及采样时间 指定用于采集信号的具体模拟输入端口以及相应的采样周期长度是非常重要的一步。这里以PA0为例说明如何将其作为常规序列中的第一个位置,并设定较短的采样时间为3个时钟周期。 ```c ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_3Cycles); ``` #### 4. 启动校准过程 每次上电重启之后都应该执行自动校正操作以确保测量精度达到最佳状态。这可以通过调用函数`ADC_StartCalibration()`实现,在确认完成后还需验证其成功与否。 ```c if (ADC_GetResetStatus(ADC1)) { while (ADC_GetCalibrationStatus(ADC1)); } else { ADC_StartCalibration(ADC1); while (ADC_GetCalibrationStatus(ADC1)); } ``` #### 5. 执行AD转换 当一切准备就绪后就可以开始真正的数据获取流程了。可以采用轮询方式等待结束标志位被置位;也可以注册中断服务程序处理异步事件通知机制下的读取动作。 ```c ADC_Cmd(ADC1, ENABLE); // 使能ADC1 while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)); // 等待转换完成 uint16_t result = ADC_GetConversionValue(ADC1); // 获取转换后的数值 ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值