感謝作者杜洋,大師的代碼風格很不錯,注釋清晰
ADC—單通道(DMA讀。+proteus8.7+stm32F103C6,可仿真信號和信號+隨機噪聲輸入AD采集
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (42.9 KB, 下載次數: 47)
下載附件
2020-11-21 16:03 上傳
51hei.png (13.81 KB, 下載次數: 58)
下載附件
2020-11-21 16:03 上傳
單片機源程序如下:
- /*********************************************************************************************
- 模板制作: 杜洋工作室/洋桃電子
- 程序名: 光敏電阻ADC讀取程序
- 編寫人: 杜洋
- 編寫時間: 2018年4月6日
- 硬件支持: STM32F103C8 外部晶振8MHz RCC函數設置主頻72MHz
- 修改日志:
- 1-
-
-
- 說明:
- # 本模板加載了STM32F103內部的RCC時鐘設置,并加入了利用滴答定時器的延時函數。
- # 可根據自己的需要增加或刪減。
- *********************************************************************************************/
- #include "stm32f10x.h" //STM32頭文件
- #include "sys.h"
- #include "delay.h"
- #include "adc.h"
- #include "usart.h"
- extern vu16 ADC_DMA_IN5; //聲明外部變量
- // 局部變量,用于保存轉換計算后的電壓值
- float ADC_ConvertedValueLocal;
- void Delay (uint32_t nCount)
- {
- for(; nCount != 0; nCount--);
- }
- int main (void){//主程序
- // delay_ms(500); //上電時等待其他器件就緒//
-
- RCC_Configuration(); //系統時鐘初始化
- Delay(0x2fff);//打開時鐘后,才能延時?
- USART1_Init(57600); //串口初始化(參數是波特率)
- USART1_printf ("\r\n ----ADC單通道DMA讀取USART初始化 ok----\r\n");
- ADC_Configuration(); //ADC初始化設置
- USART1_printf ("\r\n ----ADC單通道DMA讀取ADC初始化 ok----\r\n");
- while (1)
- {
- USART1_printf("\r\n The current AD value = %04d \r\n", ADC_DMA_IN5);
- ADC_ConvertedValueLocal=(float)ADC_DMA_IN5*(3.32/4096);
- USART1_printf("\r\n The current AD value = %f V \r\n",ADC_ConvertedValueLocal);
- // Delay(0x2fff);
- delay_ms(10);
-
- }
- }
- 【變量定義】
- u32 a; //定義32位無符號變量a
- u16 a; //定義16位無符號變量a
- u8 a; //定義8位無符號變量a
- vu32 a; //定義易變的32位無符號變量a
- vu16 a; //定義易變的 16位無符號變量a
- vu8 a; //定義易變的 8位無符號變量a
- uc32 a; //定義只讀的32位無符號變量a
- uc16 a; //定義只讀 的16位無符號變量a
- uc8 a; //定義只讀 的8位無符號變量a
- #define ONE 1 //宏定義
- delay_us(1); //延時1微秒
- delay_ms(1); //延時1毫秒
- delay_s(1); //延時1秒
- GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED控制
- */
復制代碼
所有資料51hei提供下載:
6ADC—單通道(DMA讀。.7z
(1.22 MB, 下載次數: 187)
2020-11-21 11:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|