找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4997|回復: 0
打印 上一主題 下一主題
收起左側

STM32 ADC單通道(DMA讀�。┏绦騊roteus仿真 信號+隨機噪聲輸入AD采集

[復制鏈接]
跳轉到指定樓層
樓主
ID:569027 發(fā)表于 2020-11-21 11:08 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
感謝作者杜洋,大師的代碼風格很不錯,注釋清晰
ADC—單通道(DMA讀取)+proteus8.7+stm32F103C6,可仿真信號和信號+隨機噪聲輸入AD采集
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. /*********************************************************************************************
  2. 模板制作:  杜洋工作室/洋桃電子
  3. 程序名:        光敏電阻ADC讀取程序
  4. 編寫人:        杜洋        
  5. 編寫時間:        2018年4月6日
  6. 硬件支持:        STM32F103C8   外部晶振8MHz RCC函數(shù)設置主頻72MHz   

  7. 修改日志:  
  8. 1-        
  9.         
  10.                                                         
  11. 說明:
  12. # 本模板加載了STM32F103內部的RCC時鐘設置,并加入了利用滴答定時器的延時函數(shù)。
  13. # 可根據(jù)自己的需要增加或刪減。

  14. *********************************************************************************************/
  15. #include "stm32f10x.h" //STM32頭文件
  16. #include "sys.h"
  17. #include "delay.h"
  18. #include "adc.h"
  19. #include "usart.h"

  20. extern vu16 ADC_DMA_IN5; //聲明外部變量

  21. // 局部變量,用于保存轉換計算后的電壓值         
  22. float ADC_ConvertedValueLocal;        

  23. void  Delay (uint32_t nCount)
  24. {
  25.   for(; nCount != 0; nCount--);
  26. }

  27. int main (void){//主程序
  28. //        delay_ms(500); //上電時等待其他器件就緒//
  29.         
  30.         RCC_Configuration(); //系統(tǒng)時鐘初始化
  31.         Delay(0x2fff);//打開時鐘后,才能延時?
  32.             USART1_Init(57600); //串口初始化(參數(shù)是波特率)
  33. USART1_printf ("\r\n ----ADC單通道DMA讀取USART初始化 ok----\r\n");
  34.         ADC_Configuration(); //ADC初始化設置
  35. USART1_printf ("\r\n ----ADC單通道DMA讀取ADC初始化  ok----\r\n");
  36.         while (1)
  37.         {
  38.                 USART1_printf("\r\n The current AD value = %04d \r\n", ADC_DMA_IN5);
  39.        ADC_ConvertedValueLocal=(float)ADC_DMA_IN5*(3.32/4096);
  40.                 USART1_printf("\r\n The current AD value = %f V \r\n",ADC_ConvertedValueLocal);
  41. //        Delay(0x2fff);
  42.                 delay_ms(10);
  43.         
  44. }
  45. }


  46. 【變量定義】
  47. u32     a; //定義32位無符號變量a
  48. u16     a; //定義16位無符號變量a
  49. u8     a; //定義8位無符號變量a
  50. vu32     a; //定義易變的32位無符號變量a
  51. vu16     a; //定義易變的 16位無符號變量a
  52. vu8     a; //定義易變的 8位無符號變量a
  53. uc32     a; //定義只讀的32位無符號變量a
  54. uc16     a; //定義只讀 的16位無符號變量a
  55. uc8     a; //定義只讀 的8位無符號變量a

  56. #define ONE  1   //宏定義

  57. delay_us(1); //延時1微秒
  58. delay_ms(1); //延時1毫秒
  59. delay_s(1); //延時1秒

  60. GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED控制

  61. */
復制代碼

所有資料51hei提供下載:
6ADC—單通道(DMA讀�。�.7z (1.22 MB, 下載次數(shù): 187)

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表