<STM32>STM32CubeMX-ADC采集(软件触发)(4)

<STM32>STM32CubeMX-ADC采集(软件触发单通道)(4)

本节主要讲解ADC采集数据的功能,采集采用软件触发的方式;
ADC的详细解说可参考《STM32F4XXX中文参考手册》,资料有详细的讲解和说明,文档可跟作者联系索取,或百度搜索也可。

本系列教程同类文章包括以下:
1、<STM32>STM32CubeMX-基础工程创建及LED灯控制 (1)
2、<STM32>STM32CubeMX-工程创建及定时器控制LED灯闪烁(2)
3、<STM32>STM32CubeMX-串口收发通信(结束标识“rn”)(3)

话不多说,开始写代码吧。。

一、打开STM32CubeMX选择对应的芯片型号,后进入开发界面
1、双击“STM32CubeMX”软件打开,打开后如下图所示,选择红色框1;

<STM32>STM32CubeMX-ADC采集(软件触发)(4)
2、选择开发芯片,作者本例程的芯片是STM32F407ZET6,读者根据自己使用的开发板芯片选择即可。操作如下:
按照下图步骤:
步骤1:输入开发使用的芯片型号,作者这里输入:STM32F407ZE,就会在步骤2显示芯片的具体型号;
步骤2:选择具体使用的芯片型号,选中后会高亮;
步骤3:点击“Start Project”,开始进入工程图形配置界面。
<STM32>STM32CubeMX-ADC采集(软件触发)(4)

2、配置DEBUG和SYS
步骤1:选择“Pinout&Configuration”;
步骤2:选择“System Core”;
步骤3:选择“SYS”;
步骤4:选择“Serial Wire”;
此选项是下载调试的方式选择,有很多种,包括SWD、JTAG等方式。
步骤5:选择“Sys Tick”;
此选项是HAL时基的选择,有滴答定时器,和其它定时器1、2、3、4、5…,这里选择SysTick滴答定时器。

<STM32>STM32CubeMX-ADC采集(软件触发)(4)
4、配置ADC,使用ADC1通道1,即PA1引脚
步骤1:选择“Pinout&Configuration”;
步骤2:选择“Analog”;
步骤3:选择“ADC1”;
步骤4:选择“IN1”,表示选择通道1, 此选项是选项ADC的通道,勾选够在右侧标记“6”可看到对应的IO选中。
步骤5:ADC参数配置,ADC_Settings->Clock Prescaler选择“PCLK2 divided by 4”,如图所示;
选项卡“Parameter Settings”是设置ADC的参数
(1)ADCs_Common_Settings->Mode:ADC的模式,默认选择“Independent mode”,独立模式,默认即可;
(2)ADC_Settings->Clock Prescaler:时钟预分频,默认选择“PCLK2 divided by 2”,2分频,ADC分频后的时钟最好不要高于36MHz;ADC在APB2时钟线上,后面配置时钟树时,会得到APB2是84MHz,所以本工程此选项选择“PCLK2 divided by 4”,4分频
(3)ADC_Settings->Resolution:ADC 分辨率,默认“12Bits”,默认即可;
(4)ADC_Settings->Data Alignment:数据对齐对齐方式,默认“Right alignment”,右对齐,默认即可;
(5)ADC_Settings->Scan Conversion Mode:扫描,默认“Disable”,不使能,默认即可,如果多通道可使能;
(6)ADC_Settings->Continuous Conversion Mode:连续转换,默认“Disable”,不使能,默认即可,如果多通道或连续采集信号时可使能;
(7)ADC_Settings->Discontinuous Conversion Mode:不连续转换,和上一条相反;
(8)ADC_Settings->DMA Continuous Requests:DMA 连续请求,默认“Disable”,不使能,使用DMA时可使能;
(9)ADC_Settings->End Of Conversion Selection:转换结束选择,默认“EOC flag at the end of single channel conversion”,单通道转换结束时的 EOC 标志,默认即可;
(10)ADC_Regular_ConversionMode->Number Of Conversion:转换次数,默认“1”,默认即可;
(11)ADC_Regular_ConversionMode->External Trigger Conversion Source,外部触发转换源,默认“Regular Conversion launched by software”由软件启动的定期转换,默认即可;
(12)ADC_Regular_ConversionMode->External Trigger Conversion Edge,外部触发转换边沿,默认“None”,默认即可;
(13)ADC_Regular_ConversionMode->Rank->Channel,选择ADC的通道,在前面则通道后,处选择对应的Channel即可,如果只用到1个通道,一般会默认选中;
(14)ADC_Regular_ConversionMode->Rank->Sampling Time,采样时间,小一些比较快,但是可能采集的信号波动大,大一些时间长一点,采集的波动小;
(15)ADC_Injected_ConversionMode->Number Of ConversionMode,转换模式数,默认即可;
(16)WatchDog->Enable Analog WatchDog Mode,看门口,默认不勾选,默认即可;

<STM32>STM32CubeMX-ADC采集(软件触发)(4)
四、工程输出配置
1、项目文件配置
步骤1:选择“Project Manager”
步骤2:选择“Project”
步骤3:输入工程名称,作者这里输入“ADC”,表示ADC功能的工程,一般名称体现工程的作用,可以自定义;
步骤4:点击“Browse”,选择工程存放的路径,不要包含中文;
步骤5:下拉选择“MDK-ARM”,表示用的IDE是keil;可以根据自己使用的编程软件选择,这里作者选用“MDK-ARM”;后面的“V5.27”则是软件的版本号;
步骤6:芯片的HAL库固件包,勾选后面,会自动选择,一般会自动更新到最新版本;
<STM32>STM32CubeMX-ADC采集(软件触发)(4)
点击生成后弹出提示框,点击“Open Project”,即可打开工程。
<STM32>STM32CubeMX-ADC采集(软件触发)(4)
五、代码补充
1、补充串口代码
串口是为了方便测试查看ADC的采集数据,重定向了printf函数,具体操作如下:
打开“usart.c”文件,
在文件头文件引用的“/* USER CODE BEGIN 0 /” 和“ / USER CODE END 1 */ ”之间添加如下代码:

添加后如下图:

<STM32>STM32CubeMX-ADC采集(软件触发)(4)

<STM32>STM32CubeMX-ADC采集(软件触发)(4)

添加后如下图:

<STM32>STM32CubeMX-ADC采集(软件触发)(4)
3、添加主函数代码
打开“main.c”文件
在文件头文件引用的“/* USER CODE BEGIN Includes /” 和“ / USER CODE END Includes */ ”之间添加如下代码:

添加后如下图:

<STM32>STM32CubeMX-ADC采集(软件触发)(4)

添加后如下图:
来源:waterfxw

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月11日
下一篇 2021年9月11日

相关推荐