HAL库(STM32CubeMX)——高级ADC学习、HRTIM(STM32G474RBT6)

系列文章目录



前言

对cubemx的ADC的设置进行补充


在这里插入图片描述
ADCs_Common_Settings
Mode:ADC 模式
Independent mod 独立 ADC 模式,当使用一个 ADC 时是独立模式,使用两个 ADC 时是双模式,在双模式下还有很多细分模式可选

ADC_Settings:
Data Alignment:数据对齐Right alignment 右对齐
Scan Conversion Mode:扫描模式,如果是多通道 AD 转换使用 ENABLE。
Continuous Conversion Mode:连续转换 / 单次转换。Disabled 单次转换。转换一次后停止需要手动控制才重新启动转换。
DiscontinuousConvMode:间断模式。Disabled 禁止间断模式。这个在需要考虑功耗问题的产品中很有必要,也就是在某个事件触发下,开启转换。

ADC_Regular_ConversionMode:
Enable Regular Conversions:使能规则组转换。
Enable Regular Oversampling:使能规则通道过采样,启用后,ADC会自动对同一通道进行多次采样(次数由过采样率OSR决定),并将结果累加。

STM32G474微控制器集成了一个高级定时器HRTIM(High Resolution Timer),它支持硬件触发ADC(Analog-to-Digital Converter)采样。要使用HRTIM触发ADC采样,你需要按照以下步骤操作: 1. **初始化HRTIM**: 首先,配置HRTIM时钟源、工作模式以及通道结构。确保HRTIM被配置为定时模式,并设置合适的计数器值。 ```c // 初始化HRTIM HAL_HRTime_Init(&hrtim.Instance); HRtimer.Instance.Init.Period = ADC_SAMPLING_PERIOD; HRtimer.Instance.Init.Mode = HRTIMER_MODE_NORMAL; HRtimer.Instance.Init.CounterMode = HRTIMER_COUNTERMODE_UP; HRtimer.Instance.Init.ClockDivision = HRTIMER_CLOCKDIVISION_DIV1; HRtimer.Instance.Init.RepetitionCounter = 0; HAL_HRTime_MspInit(&hrtim); HAL_HRTime_Start(&hrtim.Instance); ``` 这里的`ADC_SAMPLING_PERIOD`应该足够长来保证ADC能够完成一次完整的转换周期。 2. **配置ADC**: 在HRTIM开始运行之前,配置ADC以便于接收HRTIM生成的中断信号。这通常涉及到设置ADC的扫描模式为连续模式,外触发,并连接到合适的输入通道。 ```c // 初始化ADC并设置外触发 HAL_ADC_Init(&hadc1); HAL_ADCEx_ConfigChannel(&hadc1, &adc_channel_config); hadc1.Instance.InstanceSource = ADC_SOFTWARE_START; // 硬件启动改为软件启动,以便外部事件控制 ``` 3. **设置中断处理程序**: 为了响应HRTIM的溢出或结束事件,需要设置相应的中断服务函数。当HRTIM到达预设点时,会触发这个中断。 ```c __HAL_NVIC_EnableIRQ(HRTIM_IRQn); // 先启用中断 void HRTIM_IRQHandler(void) { HAL_HRTime_IRQHandler(&hrtim.Instance); if (HAL_HRTime_GetState(&hrtim.Instance) == HAL_HR_TIME_STATE_OVERFLOW) { HAL_ADC诱发SingleSoftwareConversion(&hadc1); // 触发ADC采样 } } ``` 每次HRTIM溢出,都会通过中断触发ADC采样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值