概述
本篇文章主要介紹如何使用STM32CubeMX移植到雅特力AT32F403AVGT7,并通過DAC輸出電壓,在芯片中有2個12位的DAC口可以供選擇。
硬件準備
首先需要準備一個開發板,這里我準備的是雅特力AT32F403AVGT7的開發板:
述
選擇芯片型號
雅特力AT32F403AVGT7兼容STM32F103系列,故選取STM32f103VG進行開發。
配置時鐘源
HSE與LSE分別為外部高速時鐘和低速時鐘,在本文中使用內置的時鐘源,故都選擇Disable選項,如下所示:
配置時鐘樹
雅特力AT32F403AVGT7最高頻率到240M,但是STM32F1的最高主頻到72M,同時使用不使用外部晶振時候,最高速度只能到64M,所以配置64即可:
DAC配置
然后設置PA4為DAC_OUT1, 完整引腳配置如下圖。
生成工程設置
注意在生產工程設置中不能出現中文,不然會報錯。
代碼生成設置
最后設置生成獨立的初始化文件。
生成代碼
代碼編寫
在main.c中,添加DAC電壓變量定義。
/* USER CODE BEGIN PTD */
int dac_i=0;//定義DAC電壓值
/* USER CODE END PTD */
在main.c中,開啟DAC通道1。
/* USER CODE BEGIN 2 */
HAL_DAC_Start(&hdac, DAC_CHANNEL_1);//開啟DAC通道1
/* USER CODE END 2 */
在main.c中,主程序輸出電壓值,因為是12位的dac,所以值只能是0-4095.
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(dac_i<4096)
{
dac_i++;
if(dac_i%512==0)//使得輸出波形為階梯狀
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, dac_i);//設置DAC值為dac_i
}
else
dac_i=0;
}
/* USER CODE END 3 */
結果演示
因為是輸出為階梯狀,每變量每增加512,電壓改變一次,故應該有8個階梯,分別是0,512,1024,1536,2048,2560,3072,3584。
審核編輯:湯梓紅
-
dac
+關注
關注
43文章
2309瀏覽量
191569 -
stm32cubemx
+關注
關注
5文章
284瀏覽量
15005 -
雅特力
+關注
關注
0文章
168瀏覽量
8142
發布評論請先 登錄
相關推薦
評論