概述
本篇文章主要介紹如何使用STM32CubeMX移植到雅特力AT32F403AVGT7,并通過DAC輸出電壓,在芯片中有2個(gè)12位的DAC口可以供選擇。
硬件準(zhǔn)備
首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備的是雅特力AT32F403AVGT7的開發(fā)板:
述
選擇芯片型號(hào)
雅特力AT32F403AVGT7兼容STM32F103系列,故選取STM32f103VG進(jìn)行開發(fā)。
配置時(shí)鐘源
HSE與LSE分別為外部高速時(shí)鐘和低速時(shí)鐘,在本文中使用內(nèi)置的時(shí)鐘源,故都選擇Disable選項(xiàng),如下所示:
配置時(shí)鐘樹
雅特力AT32F403AVGT7最高頻率到240M,但是STM32F1的最高主頻到72M,同時(shí)使用不使用外部晶振時(shí)候,最高速度只能到64M,所以配置64即可:
DAC配置
然后設(shè)置PA4為DAC_OUT1, 完整引腳配置如下圖。
生成工程設(shè)置
注意在生產(chǎn)工程設(shè)置中不能出現(xiàn)中文,不然會(huì)報(bào)錯(cuò)。
代碼生成設(shè)置
最后設(shè)置生成獨(dú)立的初始化文件。
生成代碼
代碼編寫
在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中,主程序輸出電壓值,因?yàn)槭?2位的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é)果演示
因?yàn)槭禽敵鰹殡A梯狀,每變量每增加512,電壓改變一次,故應(yīng)該有8個(gè)階梯,分別是0,512,1024,1536,2048,2560,3072,3584。
審核編輯:湯梓紅
-
dac
+關(guān)注
關(guān)注
43文章
2353瀏覽量
192748 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
286瀏覽量
15851 -
雅特力
+關(guān)注
關(guān)注
0文章
177瀏覽量
8400
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
為什么stm32f103vgt6的flash只能檢測(cè)到512k?
STM32CUBEMX(6)--移植雅特力AT32F403AVGT7,雙串口通過DMA方式接收不定長(zhǎng)數(shù)據(jù)
STM32CUBEMX(7)--移植雅特力AT32F403AVGT(兼容STM32F103VGT6),DAC輸出電壓
STM32F103VFT6的程序能直接在STM32F103VGT6上運(yùn)行嗎?
STM32F103VET6更換為STM32F103VGT6后不能啟動(dòng)
如何使用STM32CubeMX移植AT32F403AVGT7呢
AT32F403ZGT6取代STM32F103VET6相同點(diǎn)
為什么stm32f103vgt6的flash只能檢測(cè)到512k?
STM32F407的串口UART 基礎(chǔ)配置STM32CubeMX

STM32CubeMX Nucleo F767ZI 教程(2)

使用STM32CubeMX對(duì)F407ZGT6移植LWIP(全網(wǎng)最全)

STM32CUBEMX(6)--移植雅特力AT32F403AVGT7,雙串口通過DMA方式接收不定長(zhǎng)數(shù)據(jù)

STM32CUBEMX開發(fā)GD32F303

評(píng)論