三勺最近在學習STM32F103的DAC功能,本文主要解釋在配置DAC寄存器實現相應功能時遇到的一些問題。
目標一:軟件觸發DAC
根據技術手冊設置:
設置GPIO為模擬輸入模式。
設置DAC->CR、DAC->DHR12R1寄存器。
開啟KEIL的Debug調試功能:
現象1 :改變DHR12R1寄存器的值,DAC的輸出電壓不改變
原因和步驟 :每一次DAC的輸出都要開啟軟件觸發位。數據手冊中的圖42中有相關說明。打個不正當的比喻,圖中觸發源相當于是控制邏輯器的時鐘,只有時鐘在跳動,控制器才能正常工作。
目標二:實現DAC的三角波輸出
根據技術手冊設置:
設置MAMP位的三角波幅值。
依據DAC框圖使能所以需要打開的控制位。
現象: 成功輸出三角波。
目標三:使用DAC+DMA+定時器輸出正弦波
根據技術手冊設置:
現象: 成功輸出正弦波,但是波形中有一個點重復了兩次。
原因和步驟 :程序中的正弦波的點不是計算得出,而實通過Python腳本生成的32點數組,在DMA搬運時,DMA的搬運次數設置了32,示波器圖中有一點重復。DMA的CNDTR寄存器設置為31及完成了完美的正弦波,知道原因的小伙伴歡迎留言哦。
-
寄存器
+關注
關注
31文章
5317瀏覽量
120001 -
dac
+關注
關注
43文章
2269瀏覽量
190833 -
定時器
+關注
關注
23文章
3237瀏覽量
114464 -
STM32F103
+關注
關注
33文章
476瀏覽量
63476 -
GPIO
+關注
關注
16文章
1196瀏覽量
51909
發布評論請先 登錄
相關推薦
評論