当前位置: 首页> 教育> 大学 > 企业门户中的基本信息包括_二手车出口外贸流程_东莞做网站哪家公司好_短视频推广策略

企业门户中的基本信息包括_二手车出口外贸流程_东莞做网站哪家公司好_短视频推广策略

时间:2025/8/22 2:28:02来源:https://blog.csdn.net/redemption_2/article/details/144914552 浏览次数:0次
企业门户中的基本信息包括_二手车出口外贸流程_东莞做网站哪家公司好_短视频推广策略

一、实验目的

本次实验所涉及并要求掌握的知识点。

1. 建立USART上位机开发环境

在上位机上安装USB—USART协议转换芯片驱动,并安装串口调试软件,支撑USART通信实验。

2. 使用USART实现上位机与STM32F407ZG6通信

掌握STM32微控制器中USART(通用同步异步收发传输器)外设的基本功能与应用,理解其工作原理,学会如何配置和使用USART进行串行通信。

二、实验内容

1. 建立USART上位机开发环境

在上位机(一般为PC电脑)上下载安装CH340驱动程序和XCOM串口调试软件,使用USB连接开发板和上位机后,能在XCOM软件中检测到串口SUB-SERIAL CH340。

2. 使用USART实现上位机与STM32F407ZG6通信

MCU通过USART向上位机发送“Hello, MCU”, 串口调试软件可显示。上位机通过USART向MCU发送“ON”、“OFF”指令,分别控制LED1的亮和灭。

三、主要实验步骤

  1. 建立USART上位机开发环境


实现课本USART案例,测试USART上位机开发环境

上位机连续快速发送指令,会导致显示乱码

  1. 使用USART实现上位机与STM32F407ZG6通信

(1)程序设计思路

MCU完成USART的配置,设置为中断接收模式,并将GPIO初始化为输出模式,默认状态下LED1保持熄灭,MCU向上位机发送一条欢迎消息“Hello, MCU”。

程序使用USART接收中断逐字节接收数据,每次接收到数据都会触发中断回调函数,当检测到换行符 \n 表示接收完成,调用指令处理函数 contLed() 进行命令解析。

为了防止数据传输不完整,通过检测USART的空闲中断标志位(IDLE)判断数据传输是否结束,并触发指令处理。命令处理阶段通过字符串比较来解析接收到的指令,如果接收到“ON”命令,则点亮LED1(GPIO输出低电平);如果接收到“OFF”命令,则熄灭LED1(GPIO输出高电平);

  1. 程序流程图


  1. 关键步骤与代码分析

CubeMX配置

  1. 使用CubeMX模版项目文件M4_LCD_KeyLED.ioc创建项目
  2. USART1设置
    1. Mode:工作模式,设置为Asynchronous(异步)
    2. 参数设置:Baud Rate(波特率)设置为57600bit/s,Word Length(字长)设置为8位,Parity(奇偶校验位)设置为None,Stop Bits(停止位)设置为1位
    3. STM32 MCU两个扩展参数:Data Direction(数据方向)设置为Receive and Transmit,Over Sampling(过采样)设置为16Samples


② 关键代码分析及实现

  1. 主程序main.c中实现GPIO,USART1的初始化


  1. 完成初始化之后,在进入while循环之前,程序调用HAL_UART_Transmit(),以非阻塞方式向上位机发送“Hello,MCU”,注意换行则添加\r\n


  1. USART1的初始化

函数MX_USART1_UART_Init()在usart.h和usart.c中定义和实现,波特率为57600,数据位8位,停止位1为,无奇偶校验,usart.c中相关代码如下


  1. USART1中断的处理

在stm32f4xx_it.c中添加一条语句on_UART_IDLE(&huart1),用于检测USART1空闲事件中断并做相应处理


  1. 在usart.h和usart.c中定义和实现串口的空闲事件中断对应的回调函数
    1. 在usart.h中定义on_UART_IDLE和contLed两个函数,,分别用于IDLE中断检测与处理、处理接收的指令


    1. 在usart.c中实现相关处理函数
      1. 定义变量

定义rxBuffer,command,rxIndex三个变量,分别是接收数据缓冲区,最终处理的命令和当前接收数据的索引。


空闲中断检测与处理

实现usart.h中定义的on_UART_IDLE函数,用于空闲中断检测与处理,具体为检查UART是否处于空闲状态,如果处于空闲状态,清除空闲中断标志,停止DMA接收,在command数组的当前位置添加字符串结束符,重置索引,调用contLed函数处理命令,重启中断接收


      c)处理接收的指令

在contLed函数中处理接收到的命令,并根据命令控制LED的状态,如果命令是“ON”,则将LED1设置为低电平(点亮);如果是“OFF”,则将LED1设置为高电平(熄灭)


       d)接收完成中断回调函数

在HAL_UART_RxCpltCallback函数中检查是否是USART1实例的中断,如果是则判断接收的第一个字节是否不是换行符,如果不是,将命令存入缓冲区并递增索引,如果接收的是换行符表示命令已经接收完毕,在command数组的当前位置添加字符串结束符,重置索引为下一次接收做准备,调用contLed函数处理命令


(4)实验结果分析

MCU通过USART成功向上位机发送“Hello, MCU”, 并显示在XCOM上。上位机通过USART向MCU发送“ON”、“OFF”指令,成功控制LED1的亮和灭。

关键字:企业门户中的基本信息包括_二手车出口外贸流程_东莞做网站哪家公司好_短视频推广策略

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: