ADC

本文介绍了一种使用ADC进行光敏通道采样的方法,并通过串口将采样值发送至上位机的过程。文中详细描述了开启串口与时钟、配置ADC与USART参数、读取ADC值并发送至串口的具体实现。

1. AD采样通道有多种,比如光敏、电压值、温度等等。

2. 本实验采集光敏通道的值,然后通过串口输出到上位机。

  CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);// 开启串口时钟
  CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);//开启ADC时钟
  
  USART_Init(USART1, 9600, USART_WordLength_8b, USART_StopBits_1, USART_Parity_No, USART_Mode_Tx);//串口初始化
  ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit, ADC_Prescaler_1);//ADC初始化
  
  ADC_ChannelCmd(ADC1, ADC_Channel_11, ENABLE);//使能ADC通道11
  ADC_Cmd(ADC1, ENABLE);//使能ADC通道
  USART_Cmd(USART1, ENABLE);//使能串口
  
  while (1)
  {
    ADC_SoftwareStartConv(ADC1);// 开启ADC转换
    
    while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);//等待ADC转换准备好
    ADC_ClearFlag(ADC1, ADC_FLAG_EOC);//清除ADC转换结束标志
    
    value = ADC_GetConversionValue(ADC1);//获取ADC转换的值
    
    USART_SendData8(USART1, value>>8);
    while(!USART_GetFlagStatus (USART1,USART_FLAG_TXE));
    USART_SendData8(USART1, value&0xff);
    while(!USART_GetFlagStatus (USART1,USART_FLAG_TXE));
    USART_SendData8(USART1, 0x0d);
    USART_SendData8(USART1, 0x0a);
  }

3. 可以通过打表的方法实现16进制的输出。

4. 输出'\r' '\n'的方法没能换行,怎样实现换行?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值