- 1
- 0
- 约1.59千字
- 约 12页
- 2024-04-15 发布于陕西
- 举报
兰州职业技术学院STM32基础开发郭晶USART数据接收USART:通用同步/异步收发器——串口全双工异步通信可编程数据字长度8位/9位分数波特率发生器系统,最高达4.5Mbits/sLIN通信(局域互联网)STM32F1系列各个收发器外设的工作时钟来源于不同的APB总线:USART1挂载在APB2总线上,最大频率为72MHz;其他4个收发器则挂载在APB1总线上,最大频率为36MHz。检测标志校验控制四个错误检测标志10个带标志的中断源概念主要特性外设时钟来源标志USART概述USART引脚及结构USART结构USART引脚数据格式数据格式应与发送器配置的相同一个数据帧包括:1个起始位(低电平)8个数据位1个校验位1个停止位(高电平表示结束)数据接收过程开始通信,信号线为空闲,当检测到由1到0的跳变时,开始对接收时钟计数;接收端检测到起始位后,隔16个接收时钟对输入信号检测一次,把对应的值作为D0位数据;?再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据,直到全部数据位都输入;??接收到规定的数据位个数和校验位之后,通信接口电路希望收到停止位(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志;若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中取出送至数据输入寄存器,若校验错,在状态寄存器中置“奇偶错”标志;?本帧信息全部接收完,把线路上出现的高电平置为空闲位;USART接收器特征描述本任务要求设计一个LED流水灯系统,该系统与上位机之间通过串行通信接口相连。上位机可发送命令对LED流水灯系统进行控制,具体要求如下:系统中有8个LED灯,分别是LED1~LED8。系统上电时,8个LED灯默认为熄灭状态。系统运行时,8个LED灯依次点亮。LED流水灯的工作模式有两种:模式一:8个LED灯依次点亮,每个LED灯点亮1秒后熄灭,然后切换为另一个,点亮顺序为LED0、LED1、……、LED7,并以此循环往复;模式二:8个LED灯依次点亮,每个LED灯点亮1秒后熄灭,然后切换为另一个,点亮顺序为LED7、LED6、……、LED0,并以此循环往复。上位机以串行通信的方式发送命令至该系统进行LED流水灯工作模式的切换,命令“mode_1#”和“mode_2#”分别对应模式一和模式二的控制,命令“stop#”控制LED流水灯停止运行并全灭。案例任务:串行通信控制LED灯应用开发新建工程建立工程存放的文件夹新建STM32CubeMX工程010203选择MCU型号04开始工程配置调试端口01PA13SWDIOPA14SWCLK配置LED的GPIO功能03LED0~LED7PE7~PE0配置MCU时钟树02HCLK72MHzPCLK136MHzPCLK172MHz配置USART外设工作参数04模式:异步波特率:115200Bits/s数据方向:接收与发送优先级:0配置保存STM32CubeMX工程生成初始代码工程完善代码01将USART发送函数重定向到print()函数02定义USART收发所需的变量03编写USART接收中断服务函数04编写LED流水灯显示程序05编写main()函数完善代码1xxx2xxx3xxx4xxx串口调试助手输入模式命令模式1LED8—LED1依次点亮点亮时间:1s模式1LED1—LED8依次点亮点亮时间:1sStop模式LED停止运行并全灭系统运行结果谢谢!******
原创力文档

文档评论(0)