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)
|