久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM32F103內部DAC使用源碼 [打印本頁]

作者: liuguanyu    時間: 2018-5-15 13:02
標題: STM32F103內部DAC使用源碼
大容量的 STM32F103 具有內部 DAC,無線傳感器網絡實驗平臺 TDL-02 選擇的是
STM32F103ZET6 屬于大容量產品,所以是帶有 DAC 模塊的。
STM32 的 DAC 模塊(數字/模擬轉換模塊)是 12 位數字輸入,電壓輸出型的 DAC。DAC 可以配置為 8 位或 12 位模式,也可以與 DMA 控制器配合使用。DAC 工作在 12 位模式時,數據可以設置成左對齊或右對齊。DAC 模塊有 2 個輸出通道,每個通道都有單獨的轉換器。在雙
DAC 模式下,2 個通道可以獨立地進行轉換,也可以同時進行轉換并同步地更新 2 個通道的輸出。DAC 可以通過引腳輸入參考電壓 VREF+以獲得更精確的轉換結果。

單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"                  
  7. #include "dac.h"
  8. #include "adc.h"



  9. int main(void)
  10. {         
  11.         u16 adcx;
  12.         float temp;
  13.         u8 t=0;         
  14.         u16 dacval=0;
  15.         u8 key;
  16.         delay_init();                     //延時函數初始化          
  17.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
  18.         uart_init(115200);                 //串口初始化為115200
  19.         KEY_Init();                          //初始化按鍵程序
  20.         LED_Init();                             //LED端口初始化
  21.         LCD_Init();                                  //LCD初始化
  22.         Adc_Init();                                  //ADC初始化
  23.         Dac1_Init();                                //DAC初始化

  24.         POINT_COLOR=RED;//設置字體為紅色        
  25.         LCD_ShowString(60,50,200,16,16,"Sensor STM32");       
  26.         LCD_ShowString(60,70,200,16,16,"Temperature TEST");       
  27.         LCD_ShowString(60,90,200,16,16,"Waroyal@DezLinc");
  28.         LCD_ShowString(60,110,200,16,16,"2015/9/2");
  29.         LCD_ShowString(60,130,200,16,16,"KEY2:+  KEY3:-");       
  30.         //顯示提示信息                                                                                             
  31.         POINT_COLOR=BLUE;//設置字體為藍色
  32.         LCD_ShowString(60,150,200,16,16,"DAC VAL:");             
  33.         LCD_ShowString(60,170,200,16,16,"DAC VOL:0.000V");             
  34.         LCD_ShowString(60,190,200,16,16,"ADC VOL:0.000V");
  35.        
  36.         DAC_SetChannel1Data(DAC_Align_12b_R, 0);//初始值為0                         
  37.         while(1)
  38.         {
  39.                 t++;
  40.                 key=KEY_Scan(0);                          
  41.                 if(key==KEY2_PRES)
  42.                 {                 
  43.                         if(dacval<4000)dacval+=200;
  44.                         DAC_SetChannel1Data(DAC_Align_12b_R, dacval);//設置DAC值       
  45.                 }else if(key==KEY3_PRES)       
  46.                 {
  47.                         if(dacval>200)dacval-=200;
  48.                         else dacval=0;
  49.                         DAC_SetChannel1Data(DAC_Align_12b_R, dacval);//設置DAC值
  50.                 }         
  51.                 if(t==10||key==KEY2_PRES||key==KEY3_PRES) //WKUP/KEY1按下了,或者定時時間到了
  52.                 {          
  53.                         adcx=DAC_GetDataOutputValue(DAC_Channel_1);//讀取前面設置DAC的值
  54.                         LCD_ShowxNum(124,150,adcx,4,16,0);             //顯示DAC寄存器值
  55.                         temp=(float)adcx*(3.3/4096);                        //得到DAC電壓值
  56.                         adcx=temp;
  57.                         LCD_ShowxNum(124,170,temp,1,16,0);             //顯示電壓值整數部分
  58.                         temp-=adcx;
  59.                         temp*=1000;
  60.                         LCD_ShowxNum(140,170,temp,3,16,0X80);         //顯示電壓值的小數部分
  61.                         adcx=Get_Adc_Average(ADC_Channel_1,10);                //得到ADC轉換值          
  62.                         temp=(float)adcx*(3.3/4096);                        //得到ADC電壓值
  63.                         adcx=temp;
  64.                         LCD_ShowxNum(124,190,temp,1,16,0);             //顯示電壓值整數部分
  65.                         temp-=adcx;
  66.                         temp*=1000;
  67.                         LCD_ShowxNum(140,190,temp,3,16,0X80);         //顯示電壓值的小數部分
  68.                         LED0=!LED0;          
  69.                         t=0;
  70.                 }            
  71.                 delay_ms(10);       

  72.         }
  73. }

復制代碼

所有資料51hei提供下載:
DAC實驗.rar (325.65 KB, 下載次數: 71)



作者: supersheep    時間: 2019-1-19 18:12
怎么不行啊,天哪,大哥哥救救我




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: h片在线免费观看 | 国产精品mv在线观看 | 亚洲视频一区在线观看 | 欧美日韩国产一区二区三区 | 久久久久成人精品 | 欧美激情一区 | 日韩在线精品视频 | 在线视频一区二区三区 | 亚洲 欧美 另类 日韩 | 在线中文字幕国产 | 亚州精品天堂中文字幕 | 中文字幕精品一区 | 国产区在线观看 | 久草在线视频中文 | 台湾佬成人网 | 亚洲精品中文字幕在线观看 | 狠狠爱一区二区三区 | 欧美区在线观看 | 亚洲精品一区av在线播放 | 欧美成人精品一区 | 国产91精品网站 | 在线一区二区三区 | 日韩人体在线 | 日韩中文字幕在线视频 | 亚洲一区二区三区在线播放 | 自拍 亚洲 欧美 老师 丝袜 | 欧美区日韩区 | 亚洲欧美综合 | 日本一区视频在线观看 | 国产国拍亚洲精品av | 日韩有码一区二区三区 | 欧美视频在线播放 | a国产视频| a级片在线观看 | 日韩手机视频 | 你懂的av| 日干夜操 | www.久草| 日韩一二三区视频 | 91资源在线| 欧美一区二区三区久久精品 |