概述
本篇文章主要介紹如何使用STM32CubeMX移植到雅特力AT32F403AVGT7,并通過DAC輸出電壓,在芯片中有2個12位的DAC口可以供選擇。
硬件準(zhǔn)備
首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是雅特力AT32F403AVGT7的開發(fā)板:
述
選擇芯片型號
雅特力AT32F403AVGT7兼容STM32F103系列,故選取STM32f103VG進行開發(fā)。
配置時鐘源
HSE與LSE分別為外部高速時鐘和低速時鐘,在本文中使用內(nèi)置的時鐘源,故都選擇Disable選項,如下所示:
配置時鐘樹
雅特力AT32F403AVGT7最高頻率到240M,但是STM32F1的最高主頻到72M,同時使用不使用外部晶振時候,最高速度只能到64M,所以配置64即可:
DAC配置
然后設(shè)置PA4為DAC_OUT1, 完整引腳配置如下圖。
生成工程設(shè)置
注意在生產(chǎn)工程設(shè)置中不能出現(xiàn)中文,不然會報錯。
代碼生成設(shè)置
最后設(shè)置生成獨立的初始化文件。
生成代碼
代碼編寫
在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);//設(shè)置DAC值為dac_i
}
else
dac_i=0;
}
/* USER CODE END 3 */
結(jié)果演示
因為是輸出為階梯狀,每變量每增加512,電壓改變一次,故應(yīng)該有8個階梯,分別是0,512,1024,1536,2048,2560,3072,3584。
審核編輯:湯梓紅
-
dac
+關(guān)注
關(guān)注
43文章
2294瀏覽量
191051 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
283瀏覽量
14807 -
雅特力
+關(guān)注
關(guān)注
0文章
158瀏覽量
8018
發(fā)布評論請先 登錄
相關(guān)推薦
評論