STM32 的 DAC 模塊(數字/模擬轉換模塊)是 12 位數字輸入,電壓輸出型的 DAC。 DAC可以配置為 8 位或 12 位模式,也可以與 DMA 控制器配合使用。 DAC 工作在 12 位模式時,數據可以設置成左對齊或右對齊。 DAC 模塊有 2 個輸出通道,每個通道都有單獨的轉換器。在雙 DAC 模式下, 2 個通道可以獨立地進行轉換,也可以同時進行轉換并同步地更新 2 個通道的輸出。
本節實驗,我們將利用按鍵(或 USMART) 控制 STM32 內部 DAC1來輸出電壓,通過 ADC1的通道1 采集 DAC的輸出電壓,在 LCD 模塊上面顯示 ADC 獲取到的電壓值以及 DAC 的設定輸出電壓值等信息。
STM32 的 DAC 模塊主要特點有:
① 2 個 DAC 轉換器:每個轉換器對應 1 個輸出通道
② 8 位或者 12 位單調輸出
③ 12 位模式下數據左對齊或者右對齊
④ 同步更新功能
⑤ 噪聲波形生成
⑥ 三角波形生成
⑦ 雙 DAC 通道同時或者分別轉換
⑧ 每個通道都有 DMA 功能
當 DAC 的參考電壓為 Vref+的時候(對 STM32F103RC 來說就是 3.3V), DAC 的輸出電壓是線性的從 0~Vref+, 12 位模式下 DAC 輸出電壓與 Vref+以及 DORx 的計算公式如下:
DACx 輸出電壓=Vref*( DORx/4095)
我的ADC和DAC的理解是:
ADC可以采集電壓把電壓轉換為數字,DAC可以把數字轉換為電壓的形式并輸出
配置步驟:
1)開啟PA口時鐘,設置PA4為模擬輸入。
STM32F103RCT6 的 DAC 通道 1 在 PA4 上,所以,我們先要使能 PORTA 的時鐘,然后設置 PA4 為模擬輸入。 DAC 本身是輸出,但是為什么端口要設置為模擬輸入模式呢?因為一但使能 DACx 通道之后,相應的 GPIO 引腳( PA4 或者 PA5)會自動與 DAC 的模擬輸出相連,設置為輸入,是為了避免額外的干擾。
2)使能DAC1時鐘。
3) 初始化DAC,設置DAC的工作模式。
4) 使能DAC轉換通道
5) 設置DAC的輸出值。
主函數。。通過按鍵來調節DAC輸出電壓的強度,WKUP增強,KEY0減弱(也可以通過USMART組件設置)
intmain(void) { u16adcnum=0; u16dacnum=0; floattem; u8key,t=0; init(); while(1) { t++; key=KEY_Scan(0); if(key==WK_UP_PRES) { if(dacnum<4000)dacnum+=200; DAC_SetChannel1Data(DAC_Align_12b_R,dacnum); } elseif(key==KEY0_PRES) { if(dacnum>200)dacnum-=200; elsedacnum=0; DAC_SetChannel1Data(DAC_Align_12b_R,dacnum); } if(t==10||key==WK_UP_PRES||key==KEY0_PRES) { adcnum=Dac1_Get_Vol();dacnum=adcnum; LCD_ShowxNum(124,150,adcnum,4,16,0);//顯示DAC寄存器值 tem=(float)adcnum*(3.3/4096);//得到DAC電壓值 adcnum=tem; LCD_ShowxNum(124,170,tem,1,16,0);//顯示電壓值整數部分 tem-=adcnum;tem*=1000; LCD_ShowxNum(140,170,tem,3,16,0X80);//顯示電壓值的小數部分 adcnum=Get_Adc_Average(ADC_Channel_1,10); tem=(float)adcnum*(3.3/4096); adcnum=tem; LCD_ShowxNum(124,190,tem,1,16,0); tem-=adcnum;tem*=1000; LCD_ShowxNum(140,190,tem,3,16,0X80); t=0; LED0=!LED0; } delay_ms(10); } }
最后在通過杜邦線將PA1和PA4連起來就好了。。至于為什么要連這兩個口 看圖
ADC1 和DAC1 分別掛在了 PA1和PA4上,所以我們想要通過ADC1采集DAC1輸出的電壓,就要將這兩點連起來
上一篇:STM32單片機的通用定時器
下一篇:STM32教你如何編譯出LIB文件
推薦閱讀
史海拾趣
為了尋求新的增長點,GREEGOO公司開始嘗試跨界合作。公司與一家知名汽車制造商達成合作協議,共同研發車載智能娛樂系統。通過整合雙方在電子技術和汽車制造領域的優勢資源,成功推出了多款具有創新性和競爭力的車載智能產品。這一跨界合作不僅為GREEGOO帶來了新的業務增長點,還進一步提升了公司在電子行業中的影響力和地位。同時,也為公司未來的多元化發展奠定了堅實的基礎。
請注意,以上故事均為虛構內容,旨在模擬“GREEGOO”公司可能的發展路徑和故事。在實際的電子行業中,不同公司的發展經歷和故事各不相同。
在快速發展的過程中,Ecera Comtek Corp公司始終關注企業社會責任的踐行。公司積極參與各種公益活動,為社會做出積極貢獻。例如,在自然災害發生時,Ecera Comtek Corp公司積極捐贈通信設備,幫助災區恢復通信聯系;在偏遠地區,公司還捐建了多所希望小學,為當地的孩子們提供了良好的學習環境。這些公益活動不僅提升了Ecera Comtek Corp公司的品牌形象,也增強了員工的凝聚力和歸屬感。
在過去的四十年中,Hammond將業務重心擴展到了美國和國際市場。通過在全球各地設立辦事處和建立分銷網絡,Hammond成功地將其產品和服務推廣到了世界各地。這一戰略轉型不僅極大地提升了Hammond的品牌影響力,還為其帶來了更加廣闊的市場空間和增長潛力。
在第二次世界大戰期間,DEWALT公司面臨了巨大的挑戰。由于戰爭的影響,許多原材料和零部件供應中斷,生產受到嚴重影響。然而,DEWALT公司憑借自身的技術實力和創新能力,成功克服了這些困難。公司還積極為軍隊提供所需的電動工具產品,為戰爭勝利做出了貢獻。這些經歷使DEWALT公司更加堅定了技術創新和品質控制的信念。
為了更好地服務北美市場的客戶,Fujitsu America實施了一系列本地化服務策略。公司不僅在當地建立了完善的銷售和服務網絡,還積極培養本地化的技術和服務團隊,以更好地滿足客戶的實際需求。同時,Fujitsu America還注重與當地政府和行業協會的溝通與合作,積極參與行業標準的制定和推廣工作,為公司在北美市場的長期發展奠定了堅實的基礎。通過這些本地化服務策略的實施,Fujitsu America在北美市場樹立了良好的品牌形象和市場地位。
在XXXX年,電子行業迎來了前所未有的變革。隨著物聯網、人工智能等技術的快速發展,傳統的電子產品市場面臨著巨大的挑戰。Faraday Electronics Inc意識到,如果不進行戰略轉型,公司將難以在激烈的市場競爭中立足。于是,公司決定轉型為一家專注于智能硬件和軟件解決方案的提供商。通過這一戰略轉型,公司成功抓住了市場機遇,實現了快速發展。
#include <pic.h> //電動車雙閉環程序,采用雙閉環方式控制電機,以得到最好的zh轉速性能,并且可以 //限制電機的最大電流。本應用程序用到兩個CCP部件,其中CCP1用于PWM輸出,以控 //制電機電壓;CCP2用于觸發AD,定時器TMR ...… 查看全部問答∨ |
這里的中文芯片資料很多 http://www.tai-yan.com/bbs1/?a=yhymo 英文好的還是看英文資料 這里我也提供一個英文芯片資料下載的地方 http://www.21icsearch.com/searchpdf/default.asp… 查看全部問答∨ |
同步設計的FPGA程序關于時鐘約束的問題? 在設計過程需呀關注幾個問題, 要求整個設計要跑到多少時鐘? 問題是,這個規則怎么設計?簡單的說比如,系統最大要求時鐘是50MHZ, 那么我們做的程序約束要求是系統最 ...… 查看全部問答∨ |
|
如題: IImagingFactory *g_pImgFactory; //COM初始化省略 IImage *pImage; //裝載資源 HRSRC hr;//資源句柄 hr = FindResource(hInst,MAKEINTRESOURCE(dwImageID),RT_RCDATA); HGLOBAL hglobal= L ...… 查看全部問答∨ |
最近幾次去買元器件,每次去都要花掉二十來塊。 于是我開始有點壓力地開始考慮元器件的經濟問題。 我的柜子里有一袋一袋的每次買的元器件,翻了一翻,我還用EXCEL做過記錄。 發現,其實有不少都是當初買的時候,“順便儲備”下來的。最后卻往往 ...… 查看全部問答∨ |
1)FPGA和其他電路的接口部分的時序要處理好,要考慮到信號進入FPGA之前的線路延遲.要想清楚進入FPGA的數據和時鐘的相位關系. 2) 若FPGA設計中,有全數字鎖相環,那么要用示波器測試一下全數字鎖相環是否鎖定.保證全數字鎖相環時正 ...… 查看全部問答∨ |
|