当前位置: 首页 > news >正文

蓝桥杯嵌入式第六课--串口收发

前言

串口作为一个考试中考察频率较高的考点,其套路比较固定,因此值得我们仔细把握。本节课主要着眼于快速配置实现 串口收发与串口的中断。

CubeMX配置

  • 选择串口2

  • 配置异步收发模式

  • 基本参数设置(波特率、校验位等等)

  • 开启串口收发中断

Keil编程

串口的配置不难,因此重点集中在编程上,需要细心把握。

一、串口接收

由于我们不知道什么时候数据会被发送到我们的单片机上,因此,串口数据的接收主要是在中断中进行的。

首先我们要在串口初始化后,开启串口接收中断:

HAL_UART_Receive_IT(&huart2,Rx_Data,5);
第一个参数是串口的句柄
第二个参数*pData为接收的数据的存放地址,常用数组名称     
第三个参数,Size:接收的数据的大小
每当串口接收到Size个数据就会完成接收,进入接收中断。

其次是中断回调函数:

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{语句;HAL_UART_Receive_IT(&huart2,Rx_Data,5); //最后一定不要忘记添加这句话,要不然只能接收一次数据
}

特别注意:回调函数的结尾一定要再开启中断!要不然串口只会接收一次数据!

二、串口发送

串口发送不需要使用中断,因此比较简单,就是一句代码:

* @param huart   UART handle. //函数句柄,例如&huart1 * @param pData   Pointer to data buffer (u8 or u16 data elements). //要发送的数据地址,常为数组名* @param Size    Amount of data elements (u8 or u16) to be sent. //发送的数据大小* @param Timeout Timeout duration. //发送有效时间HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)

例句:

HAL_UART_Transmit(&huart2,str,strlen(str),500); //发送str数组内的内容

小结

目前串口的最基本使用总结来说就是:

  1. CubeMX配置串口

  1. 打开串口中断

  1. 程序开头开启串口接收中断:HAL_UART_Receive_IT();

  1. 编写回调函数 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

  1. 编写发送函数 HAL_UART_Transmit();

后记

  1. http://t.csdn.cn/SPA8y (关于串口收发异常)

  1. https://blog.csdn.net/weixin_54358182/article/details/129645086?spm=1001.2014.3001.5501(关于字符串比较的技巧)

http://www.lryc.cn/news/43056.html

相关文章:

  • 蓝桥杯冲刺 - Lastweek - 你离省一仅剩一步之遥!!!(掌握【DP】冲刺国赛)
  • C++ map与set的学习
  • 【C语言初阶】函数
  • CentOS 7安装redis6.2.6(包括服务开机自启和开放端口)
  • 基于注解的自动装配~
  • 【深度学习】【分布式训练】Collective通信操作及Pytorch示例
  • Spring常用注解说明
  • 13-C++面向对象(纯虚函数(抽象类)、多继承、多继承-虚函数、菱形继承、虚继承、静态成员)
  • Android DataBinding 自定义View实现数据双向绑定
  • 网络安全中的渗透测试主要那几个方面
  • Cursor:GPT-4 驱动的强大代码编辑器
  • C/C++中for语句循环用法及练习
  • AnimatorOverrideController说明
  • 1.4、第三阶段 MySQL数据库
  • LeetCode:202. 快乐数
  • Android 14 新功能之 HighLights:快速实现文本高亮~
  • [渗透教程]-004-嗅探工具-Nmap
  • 大数据技术之Hive SQL题库-初级
  • 常见HTTP状态码汇总
  • 蓝桥杯刷题冲刺 | 倒计时15天
  • 【差分数组】
  • 2022年NOC软件创意编程(学而思)决赛小学高年级组scratch
  • [JAVA]一步接一步的一起开发-图书管理系统(非常仔细,你一定能看懂)[1W字+]
  • 大数据周会-本周学习内容总结07
  • 搭建一个双系统个人服务器
  • 电脑长按电源键强行关机,对SSD有伤害吗?SSD 掉盘之殇
  • Linux:centos内核优化详解
  • 链表经典OJ题合集(包含带环问题,相交问题,随机指针复制等,附动画讲解)
  • CSS新增
  • 奇安信_防火墙部署_透明桥模式