版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.7.3
HAL库外设初始化设计思想本节内容串口通信概述轮询方式的串口通信HAL库外设初始化设计思想中断方式的串口通信DMA方式的串口通信了解通信的基本概念熟练掌握三种方式下的串口通信编程方法了解HAL库的外设初始化设计思想教学目标1 串口的数据类型定义--
南昌大学“卓越”辅导员培养工程建设外设句柄Timer外设句柄数据类型的组成12345Handle
structureInstance(外设实例)Initialization(初始化配置参数)Status(外设状态)DMA通道句柄I/O
Buffer(I/O缓冲区)UART1UART2or波特率Erroror…I/Obufferon
addressReady or BusyLinkedtoDMA
channel字符格式or串口句柄定义串口实例,如UART1和UART2等串口句柄定义串口初始化数据类型,它的成员变量为串口通信参数串口句柄定义串口的I/O缓冲区串口句柄定义串口发送和接收的DMA通道句柄串口句柄定义串口工作状态串口初始化UART串口初始化数据类型结构体类型,包括7个成员变量--
南昌大学“卓越”辅导员培养工程建设数据长度UART宏常量定义含义UART_WORDLENGTH_8B数据位长度为8位UART_WORDLENGTH_9B数据位长度为9位成员变量WordLength的取值范围--
南昌大学“卓越”辅导员培养工程建设停止位长度UART宏常量定义含义UART_STOPBITS_1停止位长度为1位UART_STOPBITS_2停止位长度为2位成员变量StopBits的取值范围--
南昌大学“卓越”辅导员培养工程建设奇偶校验UART宏常量定义含义UART_PARITY_NONE无奇偶校验UART_PARITY_EVEN偶校验UART_PARITY_ODD奇校验成员变量Parity的取值范围--
南昌大学“卓越”辅导员培养工程建设通信方式UART成员变量Mode的取值范围宏常量定义含义UART_MODE_RX串口仅处于接收模式,只能接收数据,不能发送数据UART_MODE_TX串口仅处于发送模式,只能发送数据,不能接收数据UART_MODE_TX_RX串口处于接收和发送模式,可以同时收发数据宏常量定义含义UART_HWCONTROL_NONE无硬件流控UART_HWCONTROL_RTS使能“请求发送(RTS)”引脚UART_HWCONTROL_CTS使能“允许发送(CTS)”引脚UART_HWCONTROL_RTS_CTS使能“请求发送(RTS)”和“允许发送(CTS)”引脚--
南昌大学“卓越”辅导员培养工程建设硬件流控UART成员变量HwFlowCtrl的取值范围硬件控制流可以控制数据传输的进程,防止数据丢失,该功能主要在收发双方传输速度不匹配的时候使用--
南昌大学“卓越”辅导员培养工程建设采样频率UART成员变量OverSampling的取值范围宏常量定义含义UART_OVERSAMPLING_16采样频率是信号传输频率的16倍UART_OVERSAMPLING_8采样频率是信号传输频率的8倍2 外设初始化设计思想设计思想UART从抽象到承载初始化外设句柄句柄参数写入寄存器与MCU相关的初始化抽象承载HAL_PPP_Init()HAL_PPP_MspInit()抽象:指与MCU无关的参数,比如串口通信中的数据位数、波特率。这些参数属于通用配置,与使用什么样的MCU无关。承载:指与具体MCU相关的初始化,将抽象的串口在具体的MCU上实现,完成时钟、引脚和中断等底层硬件的初始化。串口初始化UART串口初始化过程HAL_UART_Init()
Start将句柄结构中的初始化参数存入寄存器HAL_UART_MspInit()Start完成时钟和引脚初始化HAL_UART_MspInit()EndHAL_UART_Init()End将通信参数存入句柄结构串口初始化函数执行串口初始化操作2016年全国辅导员工作精品项目
--
南昌大学“卓越”辅导员培养工程建设与MCU相关的初始化函数时钟初始化引脚初始化2.7.4 轮询方式的串口通信1 轮询方式的接口函数--
南昌大学“卓越”辅导员培养工程建设接口函数:HAL_UART_Init函数原型HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef
*huart)功能描述按照串口句柄中指定的参数初始化串口入口参数huart:串口句柄的地址返回值HAL状态值:HAL_OK表示初始化成功,HAL_ERROR表示初始化失败注意事项该函数将调用与MCU相关的初始化函数HAL_UART_MspInit完成时钟、引脚和中断等底层硬件的初始化操作该函数由CubeMX自动生成1 串口初始化函数:HAL_UART_Init--
南昌大学“卓越”辅导员培养工程建设接口函数:HAL_UART_Transmit函数原型HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef*huart,uint8_t*pData,uint16_tSize,uint32_t
Timeout)功能描述在轮询方式下发送一定数量的数据入口参数1huart:串口句柄的地址入口参数2pData:待发送数据的首地址入口参数3Size:待发送数据的个数入口参数4Timeout:超时等待时间,以ms为单位,HAL_MAX_DELAY表示无限等待返回值HAL状态值:HAL_OK表示发送成功;HAL_ERROR表示参数错误;HAL_BUSY表示串口被占用;HAL_TIMEOUT表示发送超时注意事项该函数连续发送数据,发送过程中通过判断TXE标志来发送下一个数据,通过判断TC标志来结束数据的发送如果在等待时间内没有完成发送,则不再发送,返回超时标志该函数由用户调用--
南昌大学“卓越”辅导员培养工程建设接口函数:HAL_UART_Receive函数原型HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef*huart,uint8_t*pData,uint16_tSize,uint32_t
Timeout)功能描述在轮询方式下接收一定数量的数据入口参数1huart:串口句柄的地址入口参数2pData:存放接收数据的首地址入口参数3Size:待接收数据的个数入口参数4Timeout:超时等待时间,以ms为单位,HAL_MAX_DELAY表示无限等待返回值HAL状态值:HAL_OK表示接收成功;HAL_ERROR表示参数错误;HAL_BUSY表示串口被占用;HAL_TIMEOUT表示接收超时注意事项该函数连续接收数据,在接收过程中通过判断RXNE标志来接收新的数据如果在超时时间内没有完成接收,则不再接收数据,返回超时标志该函数由用户调用2.7.5 基础任务:固定长度的数据收发基础任务01任务目标掌握CubeMX软件配置串口实现轮询方式通信的方法。02任务内容从PC上发送5个字符到STM32F4开发板,开发板收到后将字符原样发回到PC。UART固定长度的数据收发异步模式,无硬件流控串口外设配置设置通信参数:波特率1152008位数据位无奇偶校验1位停止位使能接收和发送16倍过采样用户变量定义用户应用代码步骤六:程序编写usart.c中定义huart1句柄用户定义CubeMX生成串口调试助手测试效果选择PC能识别到的串口编号,串口通信参数为:波特率115200,8位数据位,无奇偶校验,1位停止位。设置接收区的数据显示格式为ASCII码显示,发送区的数据发送格式为ASCII码发送。完成设置后,单击“打开串口”按钮。在发送区输入10个字符,然后单击“发送”按钮,在数据接收区将显示由核心板原样发回的10个字符,如图所示。串口调试助手的设置如下。2.7.6 进阶任务:实现串口重定向进阶任务01任务目标利用串口实现printf函数和scanf函数。02任务内容在PC上利用串口调试助手发送数据到MCU,MCU调用scanf函数读取数据,然后调用printf函数发送应答信息到PC。UART实现串口重定向--
南昌大学“卓越”辅导员培养工程建设设计思路在C语言中,printf函数是将数据格式化输出到屏幕,scanf函数是从键盘格式化输入数据;在嵌入式系统中,一般采用串口进行数据的输入和输出;重定向是指用户改写C语言的库函数,当链接器检查到用户编写了与C库函数同名的函数时,将优先使用用户编写的函数,从而实现对库函数的修改;printf函数内部通过调用fputc函数来实现数据输出,
scanf函数内部通过调用fgetc函数来实现数据输入,因此用户需要改写这两个函数实现串口重定向。串口重定向设计思路UART程序编写添加头文件UART在usart.h文件中添加标准输入输出头文件“stdio.h”头文件添加位置USERCODEBEGINIncludesUSERCODEENDIncludes在usart.c文件中重定义fputc函数HAL_MAX_DELAY表示超时时间为无限等待代码添加位置USERCODEBEGIN1USERCODEEND1用户变量定义UART在main.c文件中添加如下代码:程序编写添加代码用户应用代码程序编写UART串口调试助手注意:调用scanf函数读取串口数据时,需要以回车换行或空格作为输入的结束。因此在串口调试助手中输入数据时,必须以空格或回车键作为结束,然后再点击发送按钮,否则无法正确
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 串联电路和并联电路课件2026-2027学年人教版物理九年级全一册
- 2026专武干部面试题目及答案
- 2026年一建市政实务零基础试卷及答案
- 2026年一建民航实务考前考点梳理卷试卷及答案
- 2026创维人力岗位面试题目及答案
- 2026年一建经济考前真题详解试卷及答案
- 2026东区招教面试题及答案
- 2026货运管理面试题及答案
- 2026交接辅警面试题及答案
- 火力发电厂除尘器干式灰斗压感式料位计常见故障诊断与处理、安装检查记录表
- 动态视觉设计基础知识培训课件
- 2004年国家公务员录用考试《行测》真题(B卷)
- 第八章农业气象灾害及其防御课件
- 2024年贵阳市第一人民医院人员招聘考试真题
- 《振动监测》课件演示
- 2025年天翼云高级解决方案架构师试题及答案
- 《榫卯结构分析》课件
- 数字时代劳动形态变革的法治回应
- GB/T 35601-2024绿色产品评价人造板和木质地板
- 全国身份证前六位、区号、邮编-编码大全
- 2024末端恒压数字全变频供水设备应用技术规程
评论
0/150
提交评论