标题:
stm32串口1(USART1)向电脑的超级终端以1s为间隔打印当前ADC1的转换电压值
[打印本页]
作者:
你算哪块小饼干
时间:
2018-6-27 16:46
标题:
stm32串口1(USART1)向电脑的超级终端以1s为间隔打印当前ADC1的转换电压值
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
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1