STMCU小助手
发布时间:2022-8-16 23:49
|
概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过GD32303C_START开发板内进行验证。 需要GD样片的可以加Q_QUN申请:6_15061293。 本章主要配置,双ADC轮询模式扫描多个通道,通过串口进行打印。 查阅手册可以得知,PA9、PA10为串口0的输出和输入口。
生成例程 这里准备了GD32303C_START开发板进行验证。
STM32CUBEMX配置
勾选中断。
ADC1配置。
ADCs_Common_Settings: Mode:Independent mod 独立 ADC 模式,当使用一个 ADC 时是独立模式,使用两个 ADC 时是双模式,在双模式下还有很多细分模式可选,具体配置 ADC_CR1 UALMOD 位。ADC_Settings: Data Alignment: Right alignment 转换结果数据右对齐,一般我们选择右对齐模式。 Left alignment 转换结果数据左对齐。 Scan Conversion Mode: Disabled 禁止扫描模式。如果是单通道 AD 转换使用 DISABLE。 Enabled 开启扫描模式。如果是多通道 AD 转换使用 ENABLE。 Continuous Conversion Mode: Disabled 单次转换。转换一次后停止需要手动控制才重新启动转换。 Enabled 自动连续转换。 DiscontinuousConvMode: Disabled 禁止间断模式。这个在需要考虑功耗问题的产品中很有必要,也就是在某个事件触发下,开启转换。 Enabled 开启间断模式。 ADC_Regular_ConversionMode: Enable Regular Conversions 是否使能规则转换。 Number Of Conversion ADC转换通道数目,有几个写几个就行。 External Trigger Conversion Source 外部触发选择。这个有多个选择,一般采用软件触发方式。 Rank: Channel ADC转换通道 Sampling Time 采样周期选择,采样周期越短,ADC 转换数据输出周期就越短但数据精度也越低,采样周期越长,ADC 转换数据输出周期就越长同时数据精度越高。 ADC_Injected_ConversionMode: Enable Injected Conversions 是否使能注入转换。注入通道只有在规则通道存在时才会出现。 WatchDog: Enable Analog WatchDog Mode 是否使能模拟看门狗中断。当被 ADC 转换的模拟电压低于低阈值或者高于高阈值时,就会产生中断。 DMA开启。
生成独立的文件。
keil配置 microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,如果要使用printf(),必须开启。
代码 在main.c中,添加头文件,若不添加会出现 identifier “FILE” is undefined报错。
函数声明和串口重定向:
定义变量,存放采集到的数据。
使能ADC传输。
主循环。
ADC回调函数。 DMA传输的时候如果读取内存片段,会有仲裁器的问题,加了一句关闭DMA的语句HAL_ADC_Stop_DMA(&hadc1);
|
实战经验 | MC SDK V6.x软件HSO功能ADC采样设计说明
兔哥心中的ST中文论坛
实战经验 | 从CubeMX下载生成STM32元件封装库
经验分享 | 为什么重启ADC的DMA传输要先停掉ADC?
软件工具我知道
效率与探索之间:STM32CubeMX与STM32CubeAI试用有感
STM32CubeMX-4.16.1生成MDK ARM.CMSIS.4.3.0' is not select
在主机模式下使用STM32Cube HAL I2C驱动
经验分享 | 为什么重启ADC的DMA传输要先停掉ADC?
经验分享 | STM32 ADC过采样话题
微信公众号
手机版