找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3610|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

Stm32 DMA-ADC實(shí)現(xiàn)源碼與說(shuō)明

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
方法:    打開(kāi)超級(jí)終端,配置超級(jí)終端為 115200 8-N-1,將編譯好的程序下載到板子,即可看到超級(jí)終端打印出如下信息:當(dāng)調(diào)節(jié)的滑動(dòng)變阻器時(shí),ADC1 轉(zhuǎn)換的電壓值則會(huì)改變。
              板載的是 20K 的精密電阻,旋轉(zhuǎn)的圈數(shù)要多點(diǎn)才能看到 ADC 值的明顯變化。(如下)



單片機(jī)源程序如下:
  1. /*******************************************************************************
  2. --------------------------------------------------------------------------------
  3. * 實(shí) 驗(yàn) 名                 : LCD-ADC-DMA實(shí)驗(yàn)
  4. * 實(shí)驗(yàn)說(shuō)明       : 通過(guò)將程序下載進(jìn)去后點(diǎn)擊復(fù)位,配置端口PA1內(nèi)的ADC,將電位器變化值轉(zhuǎn)換為
  5.                                         電壓值,通過(guò)配置DMA,將ADC和DMA連在一起,使其自動(dòng)進(jìn)行轉(zhuǎn)換搬運(yùn)。主函數(shù)
  6.                                         直接調(diào)用即可。LED指示燈閃爍效果,
  7.                                         按下復(fù)位開(kāi)關(guān)重新運(yùn)行,其他子函數(shù)注釋
  8.                                         可以參考之前的函數(shù)注釋
  9. * 連接方式       :         
  10. * 注    意                 :         所用函數(shù)在頭文件.c文件內(nèi)
  11. *******************************************************************************/

  12. #include "public.h"
  13. #include "dma.h"
  14. #include "systick.h"
  15. #include "gui.h"
  16. #include "led.h"
  17. #include "printf.h"


  18. /****************************************************************************
  19. * Function Name  : main
  20. * Description    : Main program.
  21. * Input          : None
  22. * Output         : None
  23. * Return         : None
  24. ****************************************************************************/
  25. int main()                          
  26. {        
  27.         u16 value;
  28.         u8 i,j,dat[6];
  29.         float ad;
  30.         dma_init();          //DMA初始化
  31.         TFT_Init();         //TFT彩屏初始化
  32.         LED_Init();          //端口初始化
  33.         printf_init();        //printf初始化
  34.         TFT_ClearScreen(BLACK);           //清屏
  35.         GUI_Show12ASCII(10,10,"This is a ADC1-DMA1 Check!",YELLOW,BLACK);
  36.         GUI_Show12ASCII(10,27,"PA1 is AD Input!",YELLOW,BLACK);
  37.         GUI_Show12ASCII(10,100,"The AD Volage is:",YELLOW,BLACK);
  38.         while(1)
  39.         {
  40.                 value=0;
  41.                 for(i=0;i<10;i++)//讀取10次的AD數(shù)值取其平均數(shù)較為準(zhǔn)確        
  42.                 {
  43.                         value=value+adc_data[0];               
  44.                 }
  45.                 delay_ms(500);
  46.                 value=value/10;
  47.                 ad=value*3.3/4095;
  48.                 value=(u16)(ad*100);
  49.                 dat[0]=value/100+0x30;
  50.                 dat[1]='.';
  51.                 dat[2]=value%100/10+0x30;
  52.                 dat[3]=value%100%10+0x30;
  53.                 dat[4]='V';
  54.                 dat[5]='\0';
  55.                 GUI_Show12ASCII(160,100,dat,YELLOW,BLACK);
  56.                 if(j>1)
  57.                 {
  58.                         j=0;
  59.                         GPIO_SetBits(GPIOC,GPIO_Pin_0);
  60.                 }
  61.                 else
  62.                 {
  63.                         j++;
  64.                         GPIO_ResetBits(GPIOC,GPIO_Pin_0);
  65.                 }
  66.                                                                
  67.         }                        
  68. }

復(fù)制代碼

所有資料51hei提供下載:
LCD-ADC-DMA.7z (746.83 KB, 下載次數(shù): 37)




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表