资源简介

利用USART空闲中断发送一帧完整的数据包,一块板采集ADC信号发送给另一块板。适合作为新手学习USART的例程。

资源截图

代码片段和文件信息

#include “adc.h“
#include “SysTick.h“

/*******************************************************************************
* 函 数 名         : ADCx_Init
* 函数功能    : ADC初始化
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void ADCx_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量
ADC_InitTypeDef       ADC_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1ENABLE);

RCC_ADCCLKConfig(RCC_PCLK2_Div6);//设置ADC分频因子6 72M/6=12ADC最大时间不能超过14M

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;//ADC
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; //模拟输入
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA&GPIO_InitStructure);

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;//非扫描模式
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//关闭连续转换
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//禁止触发检测,使用软件触发
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐
ADC_InitStructure.ADC_NbrOfChannel = 1;//1个转换在规则序列中 也就是只转换规则序列1 
ADC_Init(ADC1 &ADC_InitStructure);//ADC初始化

ADC_Cmd(ADC1 ENABLE);//开启AD转换器

ADC_ResetCalibration(ADC1);//重置指定的ADC的校准寄存器
while(ADC_GetResetCalibrationStatus(ADC1));//获取ADC重置校准寄存器的状态

ADC_StartCalibration(ADC1);//开始指定ADC的校准状态
while(ADC_GetCalibrationStatus(ADC1));//获取指定ADC的校准程序

ADC_SoftwareStartConvCmd(ADC1 ENABLE);//使能或者失能指定的ADC的软件转换启动功能
}

/*******************************************************************************
* 函 数 名         : Get_ADC_Value
* 函数功能    : 获取通道ch的转换值,取times次然后平均 
* 输    入         : ch:通道编号
 times:获取次数
* 输    出         : 通道ch的times次转换结果平均值
*******************************************************************************/
u16 Get_ADC_Value(u8 chu8 times)
{
u32 temp_val=0;
u8 t;
//设置指定ADC的规则组通道,一个序列,采样时间
ADC_RegularChannelConfig(ADC1 ch 1 ADC_SampleTime_239Cycles5); //ADC1ADC通道239.5个周期提高采样时间可以提高精确度     

for(t=0;t {
ADC_SoftwareStartConvCmd(ADC1 ENABLE);//使能指定的ADC1的软件转换启动功能
while(!ADC_GetFlagStatus(ADC1 ADC_FLAG_EOC ));//等待转换结束
temp_val+=ADC_GetConversionValue(ADC1);
delay_ms(5);
}
return temp_val/times;


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-08-15 20:09  USART空闲中断发送数据包\发送板\
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\adc\
     文件        2550  2017-05-19 10:50  USART空闲中断发送数据包\发送板\APP\adc\adc.c
     文件         128  2016-09-10 09:53  USART空闲中断发送数据包\发送板\APP\adc\adc.h
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\beep\
     文件         508  2017-03-17 17:20  USART空闲中断发送数据包\发送板\APP\beep\beep.c
     文件         260  2017-03-17 17:19  USART空闲中断发送数据包\发送板\APP\beep\beep.h
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\exti\
     文件        4681  2017-03-20 13:28  USART空闲中断发送数据包\发送板\APP\exti\exti.c
     文件          97  2016-08-26 10:59  USART空闲中断发送数据包\发送板\APP\exti\exti.h
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\input\
     文件        3507  2017-03-22 14:32  USART空闲中断发送数据包\发送板\APP\input\input.c
     文件         216  2017-03-22 14:21  USART空闲中断发送数据包\发送板\APP\input\input.h
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\iwdg\
     文件        1018  2016-11-13 15:36  USART空闲中断发送数据包\发送板\APP\iwdg\iwdg.c
     文件         136  2016-09-06 09:09  USART空闲中断发送数据包\发送板\APP\iwdg\iwdg.h
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\key\
     文件        1923  2017-03-20 13:15  USART空闲中断发送数据包\发送板\APP\key\key.c
     文件         941  2017-03-20 13:13  USART空闲中断发送数据包\发送板\APP\key\key.h
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\led\
     文件         763  2017-03-17 17:12  USART空闲中断发送数据包\发送板\APP\led\led.c
     文件         382  2017-03-20 13:18  USART空闲中断发送数据包\发送板\APP\led\led.h
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\pwm\
     文件        1758  2017-03-20 14:51  USART空闲中断发送数据包\发送板\APP\pwm\pwm.c
     文件         109  2017-03-20 14:51  USART空闲中断发送数据包\发送板\APP\pwm\pwm.h
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\smg\
     文件         453  2017-03-17 17:38  USART空闲中断发送数据包\发送板\APP\smg\smg.c
     文件         328  2017-03-17 17:36  USART空闲中断发送数据包\发送板\APP\smg\smg.h
     目录           0  2020-08-15 16:56  USART空闲中断发送数据包\发送板\APP\time\
     文件        1753  2016-11-11 19:55  USART空闲中断发送数据包\发送板\APP\time\time.c
............此处省略351个文件信息

评论

共有 条评论