教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

武汉理工大学智能仪器课设 - 智能化的数据采集和电压监控系统 -(3)

来源:网络收集 时间:2026-07-09
导读: 武汉理工大学智能仪器课程设计 FunctionalState ADC_ScanConvMode; FunctionalState ADC_ContinuousConvMode; uint32_t ADC_ExternalTrigConv; uint32_t ADC_DataAlign; uint8_t ADC_NbrOfChannel; }ADC_InitTypeDe

武汉理工大学智能仪器课程设计

FunctionalState ADC_ScanConvMode; FunctionalState ADC_ContinuousConvMode;

uint32_t ADC_ExternalTrigConv;

uint32_t ADC_DataAlign; uint8_t ADC_NbrOfChannel; }ADC_InitTypeDef;

参数ADC_Mode故名是以是用来设置ADC的模式。前面讲解过,ADC的模式非常多,包括独立模式,注入同步模式等等,这里我们选择独立模式,所以参数为ADC_Mode_Independent。

参数ADC_ScanConvMode用来设置是否开启扫描模式,因为是单次转换,这里我们选择不开启值DISABLE即可。

参数ADC_ContinuousConvMode用来设置是否开启连续转换模式,因为是单次转换模式,所以选择不开启连续转换模式,DISABLE即可。

参数ADC_ExternalTrigConv是用来设置启动规则转换组转换的外部事件,这里选择软件触发,选择值为ADC_ExternalTrigConv_None即可。

参数DataAlign用来设置ADC数据对齐方式是左对齐还是右对齐,这里选择右对齐方式ADC_DataAlign_Right。

参数ADC_NbrOfChannel用来设置规则序列的长度,这里是单次转换,所以值为1即可。 5)使能ADC并校准。

在设置完了以上信息后,我们就使能AD转换器,执行复位校准和AD校准,注意这两步 是必须的!不校准将导致结果很不准确。 使能指定的ADC的方法是:

ADC_Cmd(ADC1, ENABLE); //使能指定的ADC1 执行复位校准的方法是:

ADC_ResetCalibration(ADC1); 执行ADC校准的方法是:

ADC_StartCalibration(ADC1); //开始指定ADC1的校准状态 记住,每次进行校准之后要等待校准结束。这里是通过获取校准状态来判断是否校准是否结束。

6)读取ADC值。

在上面的校准完成之后,ADC就算准备好了。接下来我们要做的就是设置规则序列1里面 的通道,采样顺序,以及通道的采样周期,然后启动ADC转换。在转换结束后,读取ADC转换结果值就是了。

ADC的转换时间可以由以下公式计算:

Tcovn=采样时间+12.5个周期

其中:Tcovn为总转换时间,采样时间是根据每个通道的SMP位的设置来决定的。例如, 当ADCCLK=14Mhz的时候,并设置1.5个周期的采样时间,则得到:Tcovn=1.5+12.5=14个周期=1us。

这里设置规则序列通道以及采样周期的函数是:

void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); 3.2.3.2硬件设计

10 / 44

武汉理工大学智能仪器课程设计

该芯片有外部参考电压:Vref-和Vref+,其中Vref-必须和VSSA连接在一起,而Vref+的输入范围为:2.4~VDDA。将Vref-接到GND,Vref+接到VDDA,参考电压就是3.3V。如果想自己设置其他参考电压,将参考电压接在Vref-和Vref+上就OK了

图3.2.3.1参考电压接线图

3.2.4STM32--PWM功能模块

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。

STM32的定时器除了TIM6和7。其他的定时器都可以用来产生PWM输出。其中高级定 时器TIM1和TIM8可以同时产生多达7路的PWM输出。而通用定时器也能同时产生多达4 路的PWM输出,这样,STM32最多可以同时产生30路PWM输出!这里我们仅利用TIM3 的CH2产生一路PWM输出。 3.2.4.1软件设计

首先要提到的是,PWM相关的函数设置在库函数文件stm32f10x_tim.h和stm32f10x_tim.c 文件中。

1)开启TIM3时钟以及复用功能时钟,配置PB5为复用输出。

要使用TIM3,必须先开启TIM3的时钟,这里我们还要配置PC5为复用输出,这是因为TIM3_CH2通道将重映射到PC5上,此时,PC5属于复用功能输出。库函数使能TIM3时钟的方法是:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定时器3时钟 库函数设置AFIO时钟的方法是:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //复用时钟使能 列出GPIO初始化的一行代码即可:

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 2)设置TIM3_CH2重映射到PB5上。

因为TIM3_CH2默认是接在PA7上的,所以我们需要设置TIM3_REMAP为完全重映射(通 过AFIO_MAPR配置),让TIM3_CH2重映射到PC5上面。在库函数函数里面设置重映射的函 数是:

void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState); 3)初始化TIM3,设置TIM3的ARR和PSC。

在开启了TIM3的时钟之后,设置ARR和PSC两个寄存器的值来控制输出PWM的周期。这在库函数是通过TIM_TimeBaseInit函数实现的,调用的格式为: TIM_TimeBaseStructure.TIM_Period = arr; //设置自动重装载值 TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置预分频值

TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数模式

11 / 44

武汉理工大学智能仪器课程设计

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); 4)设置TIM3_CH2的PWM模式,使能TIM3的CH2输出。

设置TIM3_CH2为PWM模式(默认是冻结的),通过配置TIM3_CCMR1的相关位来控制TIM3_CH2的模式。在库函数中,PWM通道设置是通过函数TIM_OC1Init()~TIM_OC4Init()来设置的,不同的通道的设置函数不一样,使用通道2,所以使用的函数是TIM_OC2Init()。 void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); 5)使能TIM3。

在完成以上设置了之后,使能TIM3。使能TIM3的方法: TIM_Cmd(TIM3, ENABLE); //使能TIM3 6)修改TIM3_CCR2来控制占空比。

最后,在经过以上设置之后,PWM其实已经开始输出了,只是其占空比和频率都是固定的,而通过修改TIM3_CCR2则可以控制CH2的输出占空比。 在库函数中,修改TIM3_CCR2占空比的函数是:

void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2);

对于其他通道,分别有一个函数名字,函数格式为TIM_SetComparex(x=1,2,3,4)。

3.2.4.2 硬件设计

因为STM32输出电压为3.3V所以通过一个场效应管放大电压,输出频率为50Hz,幅值为5V的脉冲。

图3.2.4.1输出50Hz,幅值为5V占空比位20%的脉冲电路 3.2.5 STM32—TFTLCD显示模块 …… 此处隐藏:1715字,全部文档内容请下载后查看。喜欢就下载吧 ……

武汉理工大学智能仪器课设 - 智能化的数据采集和电压监控系统 -(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/594546.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)