ARM串口數據采集,測量被測電路的電壓
單片機源程序如下:
- /******************** (C) COPYRIGHT 2013 CEPARK多功能開發學習板********************
- * 文件名 :main.c
- * 描述 :串口1(USART1)向電腦的超級終端以1s為間隔打印當前ADC1的轉換電壓值
- * 實驗平臺:CEPARK多功能開發學習板
- * 庫版本 :ST3.5.0
- * 硬件連接:--------------------------------
- * 單片機IO | PA9 - USART1(Tx) -- JP8 - TX1 | 串口模塊,115200,8,1,N
- * | PA10 - USART1(Rx) RX1 |
- * --------------------------------
- * 硬件連接: -------------------------------------------------------------------
- * 模擬量輸入| PA0 - JP25(任意一個端子) 連接外部電壓(通過一個滑動變阻器分壓而來) |
- * | J1(下端)--核心板上的J7(3.3V),這是為了保護ADC模塊 | |
- * -------------------------------------------------------------------
- **********************************************************************************/
- #include "stm32f10x.h"
- #include "usart1.h"
- #include "adc.h"
-
- // 軟件延時
- void Delay(__IO u32 nCount)
- {
- for(; nCount != 0; nCount--);
- }
- /**
- * @brief Main program.
- * @param None
- * @retval : None
- */
- int main(void)
- {
- u16 ADC_Value;
- /* config the sysclock to 72M */
- SystemInit();
- /* USART1 config */
- USART1_Config();
- /* enable adc1 and config adc1 to dma mode */
- ADC1_Init();
- printf("\r\n -------CEPARK STM32開發板 ADC實驗------\r\n");
- while (1)
- {
- //設置轉換序列
- //ADC1->SQR3&=0XFFFFFFE0;//規則序列1 通道ch
- //ADC1->SQR3|=ch;
- //設置指定ADC的規則組通道,設置它們的轉化順序和采樣時間
- ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道0,規則采樣順序值為1,采樣時間為239.5周期
- //ADC1->CR2|=1<<22; //啟動規則轉換通道
- /* Start ADC1 Software Conversion */
- ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的軟件轉換啟動功能
- //while(!(ADC1->SR&1<<1));//等待轉換結束
- while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待轉換結束
- ADC_Value=ADC_GetConversionValue(ADC1); //返回最近一次ADC1規則組的轉換結果
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
ADC實驗.rar
(246.27 KB, 下載次數: 39)
2018-6-27 18:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|