![嵌入式技术及应用(STM32CubeMX版)课件 任务16 制作电压信号发生器_第1页](http://file4.renrendoc.com/view11/M02/01/02/wKhkGWWT9lKAeTuPAAFpeCM-CRE316.jpg)
![嵌入式技术及应用(STM32CubeMX版)课件 任务16 制作电压信号发生器_第2页](http://file4.renrendoc.com/view11/M02/01/02/wKhkGWWT9lKAeTuPAAFpeCM-CRE3162.jpg)
![嵌入式技术及应用(STM32CubeMX版)课件 任务16 制作电压信号发生器_第3页](http://file4.renrendoc.com/view11/M02/01/02/wKhkGWWT9lKAeTuPAAFpeCM-CRE3163.jpg)
![嵌入式技术及应用(STM32CubeMX版)课件 任务16 制作电压信号发生器_第4页](http://file4.renrendoc.com/view11/M02/01/02/wKhkGWWT9lKAeTuPAAFpeCM-CRE3164.jpg)
![嵌入式技术及应用(STM32CubeMX版)课件 任务16 制作电压信号发生器_第5页](http://file4.renrendoc.com/view11/M02/01/02/wKhkGWWT9lKAeTuPAAFpeCM-CRE3165.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务16制作电压信号发生器任务要求STM32的DAC为12位的DA转换器,用第1通道转换外部输入的DA转换数据,DA数据采用右对齐。串口1作异步通信口,与计算机进行串行通信。计算机通过串口调试助手向STM32发送DA转换数据,同时接收STM32发送来的反馈信息。串口的波特率BR=115200bps,数据位8位,停止位1位。计算机的串口发送的数据以及调试助手中显示的数据如表所示,要求用STM23CubeMX生成初始化程序,然后在Keil中编程实现DA转换功能,使DAC的输出引脚输出对应的电压值,即实现电压信号源的功能。任务要求串口发送的数据及回显数据命令功能串口调试助手显示的数据55AAVHVL5A且VHVL的值小于4096DA值合法,进行DA转换输入数据为0xVHVL,即xx,输出电压为y.yyV55AAVHVL5A且VHVL的值大于4095DA值非法,不进行DA转换输入数据为0xVHVL,即xx,输入数据过大!其他命令非法,不进行DA转换输入非法!表中,命令数据为十六进制数。其中,55AA为数据头,5A为数据尾,VH、VL为待转换的DA数据,VH为数据的高字节内容,VL为数据的低字节内容。例如,55AA07FF5A就表示输入数据为合法的DA转换数据,DA转换数据为0x07FF。任务要求串口发送的数据及回显数据命令功能串口调试助手显示的数据55AAVHVL5A且VHVL的值小于4096DA值合法,进行DA转换输入数据为0xVHVL,即xx,输出电压为y.yyV55AAVHVL5A且VHVL的值大于4095DA值非法,不进行DA转换输入数据为0xVHVL,即xx,输入数据过大!其他命令非法,不进行DA转换输入非法!xx为十六进制数VHVL所对应的十进制数,输出电压y.yy表示带2位小数的十进制电压值。知识储备
1.D/A转换的基础知识D/A转换器的功能是将数字量转换成与数字量成比例的模拟量,常用DAC表示。按照待转换数字的位数可分为8位、10位、12位等几种类型;按照输出模拟量的类型可分为电流输出型和电压输出型;按照DAC与微处理器的接口形式可分为串行DAC和并行DAC。就目前的使用情况来看,工程上偏向于选用串行DAC。(1)分辨率:输入数字量变化1时,对应的输出模拟量的变化量。分辨率反映了输出模拟量的最小变化值。设DAC的数字量的位数为n,则DAC的分辨率=满量程电压/(2n-1)。对于同等的满量程电压,DAC的位数越多,则分辨率越高。因此,分辨率也常用DAC的数字量的位数来表示。
1.D/A转换的基础知识(2)转换时间:从数字量输入至DAC开始到DAC完成转换并输出对应的模拟量所需要的时间。转换时间反映了DAC的转换速度。(3)满刻度误差:数字量输入为满刻度(全1时),实际输出的模拟量与理论值的偏差。
2.STM32中DAC的应用特性STM32中集成有1个12位的电压型的DAC,可设置为8位或者12位DAC。(1)DAC的引脚引脚功能VDDADAC的模拟部分的电源脚VSSADAC的模拟部分的地VREF+DAC的参考电压DAC_OUTDA转换的电压输出脚说明:有些DAC有VDDA、VSSA、VREF+、VREF-、DAC_OUT等5个引脚
2.STM32中DAC的应用特性(2)DA转换触发方式:8种触发方式含义SWTRIG软件触发TIM2_TRGOTIM2的TRGO事件触发TIM4_TRGOTIM4的TRGO事件触发TIM5_TRGOTIM5的TRGO事件触发TIM6_TRGOTIM6的TRGO事件触发TIM7_TRGOTIM7的TRGO事件触发TIM8_TRGO对于大容量产品是TIM8的TRGO事件触发,对于互联型产品是TIM3的TRGO事件触发EXTI_9外部中断线9触发
2.STM32中DAC的应用特性(3)转换通道:2个,可同时进行2路DA转换,通道1的输出引脚为PA4,通道2的输出引脚为PA5。(4)写入数据的对齐方式:对齐和右对齐2种方式。(5)DAC的输出电压:输出引脚与VSSA引脚之间的电压,输出电压如下:式中,VREF为DAC的参考电压,VDAC为DA的转换值,n为DAC的位数。例如,DAC的位数为12位,参考电压为3.3V,若DA的转换值为2047,则DAC的输出电压为:
2.STM32中DAC的应用特性(6)输出具缓冲功能(7)DAC具有DMA控制功能函数的用法(1)HAL_DAC_SetValue()函数3.HAL库中有关DAC的常用函数和宏原型HAL_StatusTypeDefHAL_DAC_SetValue(DAC_HandleTypeDef*hdac,uint32_tChannel,uint32_tAlignment,uint32_tData);功能为DAC通道设置转换值。参数1hdac:DAC句柄,取值为&hdac。其中,hdac为系统定义的保存DAC配置的结构体变量。参数2Channel:DAC的通道号。该参数的取值及其含义下表所示。参数3Alignment:待转换数据的对齐方式。该参数的取值及其含义如下表所示。参数4Data:待转换的DAC数据。返回值HAL的状态。Channel参数3.HAL库中有关DAC的常用函数和宏Channel参数的取值含义DAC_CHANNEL_1选择通道1DAC_CHANNEL_2选择通道2Alignment参数的取值含义DAC_ALIGN_8B_R8位的右对齐数据DAC_ALIGN_12B_L12位的左对齐数据DAC_ALIGN_12B_R12位的右对齐数据Alignment参数例如,将DAC第1通道的转换值设为2048,其中DA转换数据为右对齐,其程序如下:
HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,2048);函数的用法(2)HAL_DAC_Start()函数3.HAL库中有关DAC的常用函数和宏原型HAL_StatusTypeDefHAL_DAC_Start(DAC_HandleTypeDef*hdac,uint32_tChannel);功能启动DAC指定通道的DA转换。参数1hdac:DAC句柄,取值为&hdac。其中,hdac为系统定义的保存DAC配置的结构体变量。参数2Channel:DAC的通道号。返回值HAL的状态。例如,启动DAC的第1通道的DA转换,其程序如下:
HAL_DAC_Start(&hdac,DAC_CHANNEL_1);函数的用法(3)HAL_DAC_Stop()函数3.HAL库中有关DAC的常用函数和宏原型HAL_StatusTypeDefHAL_DAC_Stop(DAC_HandleTypeDef*hdac,uint32_tChannel);功能停止DAC指定通道的DA转换。参数1hdac:DAC句柄,取值为&hdac。其中,hdac为系统定义的保存DAC配置的结构体变量。参数2Channel:DAC的通道号。返回值HAL的状态。说明:在HAL库中HAL_DAC_Stop_DMA()函数也是一个停止DA转换函数,但其功能是,停止DMA的方式控制的DA转换。函数的用法(4)HAL_DAC_GetValue()函数3.HAL库中有关DAC的常用函数和宏原型uint32_tHAL_DAC_GetValue(DAC_HandleTypeDef*hdac,uint32_tChannel);功能获取DAC通道的转换值。参数1hdac:DAC句柄,取值为&hdac。其中,hdac为系统定义的保存DAC配置的结构体变量。参数2Channel:DAC的通道号。返回值HAL的状态。实现方法与步骤任务16的硬件电路:
1.搭建电路
2.生成DAC的初始化代码步骤(1)在“D:\ex”文件夹中新建Task16子文件夹。(2)将任务10的STM32CubeMX工程文件Task10.ioc(位于“D:\ex\Task10”文件夹中)复制到Task16文件夹中,并将其改名为Task16.ioc。(3)双击Task16.ioc文件图标,打开任务16的STM32CubeMX工程文件。任务16中的绝大部分初始化代码与任务10中的初始化代码相同,可以通过修改任务10的STM32CubeMX工程来形成任务16的STM32CubeMX工程。
(4)配置DAC2.生成DAC的初始化代码(5)保存工程,然后生成Keil工程代码
3.编写信号发生器的程序步骤(1)将任务10中位于“D:\ex\Task10”文件夹中的User子文件夹复制至“D:\ex\Task16”文件夹中。User子文件夹中保存的是串行通信文件Serial.c和Serial.h。(2)打开任务16的Keil工程,并按前面介绍的方法在Keil工程中新建User组,然后将“D:\ex\Task16\User”文件夹中的Serial.c文件添加至User组中。(3)在Keil工程的include路径中添加“D:\ex\Task16\User”文件夹,该文件夹是Serial.h头文件所在的文件夹。(4)在main.c文件中编写用户应用程序,程序代码如下:
3.编写信号发生器的程序12345678910111213
14…#include "stdio.h"#include "string.h"#include "Serial.h"…uint8_t ComStr[3]={0x55,0xaa};//命令的部分代码…intmain(void){char * fp;uint16_tval;…HAL_UART_Receive_IT(&huart1,&aRxBuf,1); /*使能串口1接收中断,并指定接收缓冲区和接收数据长度*/while(1)
3.编写信号发生器的程序141516
171819
20212223
2425while(1){if(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE)!=RESET) /*判断是否是空闲中断(IDLE)发生*/
{
/****************************************************************/
if((fp=strstr((const char *)UserRxBuf,(const char *)ComStr))!=NULL)
{//收到0x55aa
if(*(fp+4)==0x5a) //检查是否收到了帧尾0x5a
{ //收到了帧尾0x5a
val=((uint16_t)*(fp+2))<<8|(*(fp+3));/*将接收数据拼成DA转换值*/
if(val<4096)/*检查DA值的范围*/
{/*在0~4095之间,则设置DA值,并启动DA转换*/
3.编写信号发生器的程序2526
27
2829303132
333435 {/*在0~4095之间,则设置DA值,并启动DA转换*/ printf("当前输入数据为0x%x,即%d,输出电压为%.2fV\r\n",val,val,3.3*val/4095); HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,val);/*设置DA转换值*/
HAL_DAC_Start(&hdac,DAC_CHANNEL_1);/*启动DA转换*/ } else {/*过大,则提示*/ printf("当前输入数据为0x%x,即%d,输入数据过大!\r\n",val,val); } }
else
3.编写信号发生器的程序35363738394041424344454647484950
else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部编初中历史八下第1课中华人民共和国成立教案
- 2025年全球及中国大型不锈钢铸件行业头部企业市场占有率及排名调研报告
- 2025-2030全球化妆品级枯草菌脂肽钠行业调研及趋势分析报告
- 2025-2030全球光纤导管静脉激光治疗行业调研及趋势分析报告
- 2025年全球及中国铜缆高速连接器行业头部企业市场占有率及排名调研报告
- 2025国际(非独占)商标使用许可合同
- 2025农业种植生产产销合同书
- 餐饮业合同年
- 2025室内装修设计合同范本
- 房屋租赁续签合同模板
- 2025年湖南高速铁路职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 医保政策与健康管理培训计划
- 策略与博弈杜塔中文版
- 无人化农场项目可行性研究报告
- 2024届上海市金山区高三下学期二模英语试题(原卷版)
- 学生春节安全教育
- 2024-2025年校长在教研组长和备课组长会议上讲话
- 2025届江苏省常州市高级中学高三第二次模拟考试语文试卷含解析
- 高三日语一轮复习助词「で」的用法课件
- 2024-2030年中国铷铯及其化合物行业深度调研及投资战略分析报告
- 散货物流行业市场调研分析报告
评论
0/150
提交评论