標(biāo)題: stm32串口1(USART1)向電腦的超級終端以1s為間隔打印當(dāng)前ADC1的轉(zhuǎn)換電壓值 [打印本頁]

作者: 你算哪塊小餅干    時(shí)間: 2018-6-27 16:46
標(biāo)題: stm32串口1(USART1)向電腦的超級終端以1s為間隔打印當(dāng)前ADC1的轉(zhuǎn)換電壓值
ARM串口數(shù)據(jù)采集,測量被測電路的電壓

單片機(jī)源程序如下:
  1. /******************** (C) COPYRIGHT 2013 CEPARK多功能開發(fā)學(xué)習(xí)板********************
  2. * 文件名  :main.c
  3. * 描述    :串口1(USART1)向電腦的超級終端以1s為間隔打印當(dāng)前ADC1的轉(zhuǎn)換電壓值         
  4. * 實(shí)驗(yàn)平臺:CEPARK多功能開發(fā)學(xué)習(xí)板
  5. * 庫版本  :ST3.5.0
  6. * 硬件連接:--------------------------------
  7. * 單片機(jī)IO | PA9  - USART1(Tx) -- JP8 - TX1 | 串口模塊,115200,8,1,N
  8. *          | PA10 - USART1(Rx)          RX1 |
  9. *           --------------------------------
  10. * 硬件連接: -------------------------------------------------------------------
  11. * 模擬量輸入| PA0 - JP25(任意一個(gè)端子) 連接外部電壓(通過一個(gè)滑動(dòng)變阻器分壓而來) |
  12. *           | J1(下端)--核心板上的J7(3.3V),這是為了保護(hù)ADC模塊              |                                                  |
  13. *            -------------------------------------------------------------------
  14. **********************************************************************************/
  15. #include "stm32f10x.h"
  16. #include "usart1.h"
  17. #include "adc.h"
  18.       

  19. // 軟件延時(shí)
  20. void Delay(__IO u32 nCount)
  21. {
  22.   for(; nCount != 0; nCount--);
  23. }

  24. /**
  25.   * @brief  Main program.
  26.   * @param  None
  27.   * @retval : None
  28.   */

  29. int main(void)
  30. {       
  31.         u16 ADC_Value;
  32.         /* config the sysclock to 72M */      
  33.   SystemInit();

  34.   /* USART1 config */
  35.         USART1_Config();

  36.         /* enable adc1 and config adc1 to dma mode */
  37.         ADC1_Init();

  38.         printf("\r\n -------CEPARK STM32開發(fā)板 ADC實(shí)驗(yàn)------\r\n");

  39.   while (1)
  40.   {
  41.     //設(shè)置轉(zhuǎn)換序列                           
  42.                 //ADC1->SQR3&=0XFFFFFFE0;//規(guī)則序列1 通道ch
  43.                 //ADC1->SQR3|=ch;       
  44.                 //設(shè)置指定ADC的規(guī)則組通道,設(shè)置它們的轉(zhuǎn)化順序和采樣時(shí)間
  45.                 ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5 );        //ADC1,ADC通道0,規(guī)則采樣順序值為1,采樣時(shí)間為239.5周期                                      
  46.                 //ADC1->CR2|=1<<22;       //啟動(dòng)規(guī)則轉(zhuǎn)換通道
  47.                 /* Start ADC1 Software Conversion */
  48.                 ADC_SoftwareStartConvCmd(ADC1, ENABLE);                //使能指定的ADC1的軟件轉(zhuǎn)換啟動(dòng)功能
  49.                 //while(!(ADC1->SR&1<<1));//等待轉(zhuǎn)換結(jié)束         
  50.                 while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待轉(zhuǎn)換結(jié)束
  51.                 ADC_Value=ADC_GetConversionValue(ADC1);        //返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果

  52. ……………………

  53. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
ADC實(shí)驗(yàn).rar (246.27 KB, 下載次數(shù): 39)







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1