STM32CubeIDE开发笔记6:F407+DAC+TIM
本文链接:https://blog.youkuaiyun.com/qq_42038029/article/details/103851481
版权声明:本文为优快云博主「遥望1415984987」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
stm32CubeIDE所用版本:1.1.0
固件库包:f4 1.24.2
测试平台stm32f407zg
由于STM32F103C8T6没有DAC模块,所以本次用F407来学习DAC模块的使用,也简单学习F4的配置。
STM32F407ZG的简单配置
如图,和f103一样,先把时钟源配置成外部时钟源,不先配置RCC,就配置不了后面的时钟树。
SYS选择SW调试。用JLINK的根据自己情况选择,我记得没错的话,cubeide目前只支持STLINK和JLINK的下载调试,用DAP下载器的注意一下。
时钟树配置成下图这样,没啥好说的:
这样基本的配置就弄好了,接下来加DAC配置。
DAC的配置
DAC的配置很简单,如下图:
生成工程后,添加两行代码即可
/* USER CODE BEGIN 2 */
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, 2048);
HAL_DAC_Start(&hdac, DAC_CHANNEL_1);
第一行代码的第一个参数是句柄,第二个是通道口,第三个是转换值12位右对齐,我看了下,我所使用的F407只有三种数据格式:
/** @defgroup DAC_data_alignment DAC Data Alignment
* @{
*/
#define DAC_ALIGN_12B_R 0x00000000U
#define DAC_ALIGN_12B_L 0x00000004U
#define DAC_ALIGN_8B_R 0x00000008U
/**
一般都用第一个12位右对齐就行了。
第四个参数是转换值,12位数据,最大为2的12次方减一,也就是4095,对应电压为电源电压即3.3V。2048为最大值一般,对应电压应该为1.65V,下载至单片机上验证。
可以看出与预期一致。
DAC+TIM产生三角波
先配置好DAC
再配置好TIM2
配置好后更新代码
依然两行代码搞定
/* USER CODE BEGIN 2 */
// HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, 2048);
HAL_TIM_Base_Start(&htim2);
HAL_DAC_Start(&hdac, DAC_CHANNEL_1);
/* USER CODE END 2 */
下载到单片机上验证
创作不易,点个赞吧!