蓝桥杯嵌入式CT117E-M4学习笔记08-串口通信实验

2023-11-09


前言

本节我们学习开发板的串口通信。

一、实验原理

1. 串口通信原理

详见STM32串口通信详解

2.开发板原理图

在开发板上,STM32G431RBT6的串口TX和RX是通过DAP进行转发的,因此我们直接使用PA9 TX和PA10 RX即可与PC进行串口通信。

在这里插入图片描述在这里插入图片描述

二、配置步骤

1.创建工程,配置时钟、MDK5配置等。

2.配置PA9为USART1_TX,PA10为USART1_RX

在这里插入图片描述

3.配置串口1位异步通信模式

在这里插入图片描述

4.配置波特率、数据长度、校验位、停止位。

在这里插入图片描述

5.配置串口接收中断,然后点击生成keil5代码。

在这里插入图片描述

三、串口发送

1.直接使用HAL_USART_Transmit发送。

(1)引入stdio.h和string.h

#include "stdio.h"
#include "string.h"

在这里插入图片描述

(2)在main.c中定义相关代码

int counter = 0;
char str[40];
sprintf(str, "%04d:Hello,world.\r\n", counter);
HAL_UART_Transmit(&huart1,(unsigned char *)str, strlen(str), 50);
HAL_Delay(500);

if(++counter == 10000){
	counter = 0;
}

在这里插入图片描述

(3)实验现象,串口助手间隔0.5s接收到一条Hello,world.

在这里插入图片描述

2.使用重定向prtinf函数发送。

(1)在uart.c中添加重定向函数

#include "stdio.h"

int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}

在这里插入图片描述

(2)工具栏设置使用MicroLib库。

在这里插入图片描述

(3)更换使用printf函数发送串口数据。

printf("%04d:Hello,world.\r\n",counter);
HAL_Delay(500);
if(++counter == 10000){
	counter = 0;
}

在这里插入图片描述
(4)实验现象,串口助手间隔0.5s接收到一条Hello,world.

在这里插入图片描述

四、串口接收

1.定义缓存接收数组,开启串口接收中断。

char rxBuffer[1];

在这里插入图片描述

HAL_UART_Receive_IT(&huart1,(uint8_t *)rxBuffer,1);	//启动接收中断

在这里插入图片描述

2.重写串口接收中断回调函数,并将接受的数据再通过串口发送出去。

//串口接收回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
	//将数据返回回去
	HAL_UART_Transmit(&huart1,(uint8_t *)rxBuffer,1,0xffff);
	//重新启动接收中断
	HAL_UART_Receive_IT(&huart1,(uint8_t *)rxBuffer,1);
}

在这里插入图片描述

3.实验现象,串口助手发送出去数据后,立马接收到同样的数据。

在这里插入图片描述

总结

以上就是开发板的串口通信实验,如有错误,感谢指正。

鉴于官方开发板售价过高,本人自己制作了一款蓝桥杯嵌入式开发板,完全兼容官方的开发板,并且接下来会基于这款开发板进行学习和制作学习日志,到时候所拍实物图片会与官方开发板略有不同,如果有意向一起学习的同学也可以私聊我互相学习交流,ps: 找我低价买块开发板自己学习也是可以的 ~ 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯嵌入式CT117E-M4学习笔记08-串口通信实验 的相关文章

  • 路由器打印机服务器系统,路由器怎么设置打印机服务器

    路由器怎么设置打印机服务器 内容精选 换一换 CDC Change Data Capture 即数据变更抓取 通过为源端数据源开启CDC ROMA Connect可实现数据源的实时数据同步以及数据表的物理删除同步 ROMA Connect支
  • DS排序--希尔排序

    目录 题目描述 思路分析 AC代码 题目描述 给出一个数据序列 使用希尔排序算法进行降序排序 间隔gap使用序列长度循环除2直到1 输入 第一行输入t 表示有t个测试示例 第二行输入n 表示第一个示例有n个数据 n gt 1 第三行输入n个
  • PowerBUS 双总线收发器

    随着智能化的发展 人的需求变高 在一个环境内 如果子设备较多 距离适中 大多数是布置485总线加电源地需要4根线 这样就会导致走线复杂 线的成本也较高 如果用BLE或者wifi无线连接时也需要电源地2根线 成本更高 而powerbus双总线
  • Android基础学习总结(十六)——基于ijkplayer封装支持简单界面UI定制的视频播放器

    前言 项目开发中遇到需要解析播放m3u8视频流的情况 但是原生的PlayerView非常慢 使用起来复杂 不适合上手 这里找到一款ijkplayer是Bilibili基于ffmpeg开发并开源的轻量级视频播放器 支持播放本地网络视频 也支持
  • [Spring学习]04 Spring IOC创建Bean的几种方式

    目录 一 调用构造器创建Bean对象 二 调用静态工厂方法创建Bean对象 三 调用实例 动态 工厂方法创建Bean对象 一 调用构造器创建Bean对象 通过调用构造器创建Bean对象是我们在实际开发中最常用的方式 而构造器创建Bean对象
  • 运维小知识之企业内部NTP服务器基础安装与配置使用

    0x00 前言简述 基础概念 服务方式 公共 NTP 服务器 0x01 服务器安装配置 CentOS Ubuntu 1 NTP 服务 2 Chrony 服务 0x02 NTP客户端配置 Windows 服务器 Linux 服务器 0x04
  • YOLO系列梳理(三)YOLOv5

    前言 YOLOv5 是在 YOLOv4 出来之后没多久就横空出世了 今天笔者介绍一下 YOLOv5 的相关知识 目前 YOLOv5 发布了新的版本 6 0版本 在这里 YOLOv5 也在5 0基础上集成了更多特性 同时也对模型做了微调 并且
  • 计网第五章(运输层)(七)(TCP的连接建立)

    目录 一 基本概述 二 连接建立 1 基本任务 2 具体实现 三 经典问题之为什么不用 两次握手 一 基本概述 在前面的部分提到过 TCP是基于运输连接来传输TCP报文段 所以TCP的连接和释放是每次面向连接的通信过程中必不可少的过程 TC
  • 7-16 插松枝

    人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上 做成大大小小的松枝 他们的工作流程 并不 是这样的 每人手边有一只小盒子 初始状态为空 每人面前有用不完的松枝干和一个推送器 每次推送一片随机型号的松针片 工人首先捡起一根空的松枝干

随机推荐

  • Flutter中深入了解MaterialApp,常用属性解析

    一 Flutter中结构图 Flutter Framework Foundation Animation Painting Gestures合成了Dart UI层 对应的是Flutter中 dart ui 包 对应的含义是动画 手势 绘制能
  • Android compileSdkVersion 升级到33

    compileSdkVersion minSdkVersion 和 targetSdkVersion 1 minSdkVersion 应用兼容的SDK API最低版本 若手机系统低于minSdkVersion将无法安装 AndroidStu
  • MYSQL字符串大小写 缺省行为

    今天遇到一个主键冲突的文件 我看两条记录的主键明明不一样 一条是大写的JAA 另外一条是小写的jaa 莫灰是mysql对字段的值不区分大小写 在网上查了一下 还真是 默认情况下 找了一篇文章 摘自 http www oklinux cn h
  • Starting the Docker Engine...一直转圈

    真是服了 网上一大堆解决教程 不管咋样就是转圈 就是打不开 好家伙 原来是要登录账号才行 奶奶的 账号以登录 立马就OK了 白费我好大的心血和时间 右上角 登录账号
  • VS Code快捷键MAC环境(持续更新)

    VS Code内打开终端 ctrl
  • hbuilder打包ios所需的IDP/IEP证书创建流程

    在uniapp开发进行云打包的时候 打包Ios应用需要IDP IEP证书和证书profile文件 无论使用windows电脑 还是mac电脑 生成ios证书 需要苹果开发者账号 假如你还没有苹果开发者账号 你可以参考下文先到苹果开发者中心开
  • 微信公众号订阅通知介绍

    功能介绍 订阅通知是一个用户主动订阅 服务号按需下发的通知能力 使用过程请遵守 微信公众平台服务协议 微信公众平台运营规范 如有疑问 可在微信开放社区反馈 设置订阅功能 服务号可以在图文消息 网页等场景设置订阅功能 下发条件 用户在前述场景
  • mybatis 自动填充无效_mybatis-plus3.3.0自动填充方法有改变?

    源自 mybatis plus3 3 0自动填充方法有改变 Slf4j Component public class MyMetaObjectHandler implements MetaObjectHandler Override pub
  • git 服务器 文件目录结构,查看Jenkins 服务器上的目录结构

    1 很多同学 不太清楚 默认的Jenkins安装后 文件在服务器 的哪个目录 其实 大家随便构建一个JOB 看 控制台输出 是的 Jenkins的所有文件 存储在 root jenkins这个文件夹 2 通过xshell等工具 进入 jen
  • 网页设计规范 网页设计稿尺寸

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 移动端H5设计稿尺寸 移动端H5尺寸 设计移动端 H5 项目的时候 我们一般以用户量较高的 iPhone6 7 8的尺寸 750x1334px为准 然后我们要在顶部预留出微
  • Native memory allocation (mmap) failed to map 6215958528 bytes for committing reserved memory

    今天突然发现es报错 无法正常启动 报错信息如下 Exception in thread main java lang RuntimeException starting java failed with 1 output There is
  • 【微信小程序入门到精通】— 渲染列表的详细方法

    目录 前言 一 引入 wx for 1 1 wx for 语法结构 1 2 wx for 实例 二 wx key 应用 总结 前言 对于目前形式 微信小程序是一个热门 那么我们该如何去学习并且掌握之后去做实际项目呢 为此我特意开设此专栏 在
  • CVE-2021-3493漏洞复现案例(提权)

    下面复现需要在虚拟机中完成 CVE 2021 3493漏洞案例 可以在下面链接下载关于该漏洞的代码脚本 https github com inspiringz CVE 2021 3493 1 攻击工具及环境说明 在虚拟机上完成 Ubuntu
  • 【已更新】2023mothercup妈妈杯D题数学建模挑战赛思路代码-航空安全风险分析和飞行技术评估问题

    我们来看下D题 这道题是一道数据分析类题目 总共有五个小问 第一题是要求我们针对附件1的数据质量开展可靠性研究 提取与飞行安全相关的部分关键数据项 并对数据项的重要程度进行分析 第一步是对数据的可靠性分析 数据质量的可靠性研究主要包括数据完
  • win32 socket编程 示例(功能简单,完善)

    最近在做的一个项目要用到网络通信方面的内容 于是自学了下win32socket 原来自己学过计算机网络 只了解网络各层的原理 但没有真正的编程来实现这些原理 哎 不过现在还来得及 下面是自己的一个示例 虽然简单 但了解了它 就知道了最基本的
  • Idea 学生认证

    Idea 学生认证 具体步骤 认证地址 操作如图 具体步骤 认证地址 https www jetbrains com community education students 操作如图 学生邮箱会收到来信 认证完成
  • linux常用命令笔记(二)

    2020 03 18 一 echo 1 原文输出 双引号可加可不加 echo hello world echo hello world 2 输出变量的值 echo 变量名 echo PATH 输出环境变量PATH的值 注意 linux环境变
  • 每一代内存的读写速度大概是多少?

    每一代内存的读写速度大概是多少 原文 https zhidao baidu com question 1797460631148535467 html 内存 有核心频率 I O频率 等效频率 最后由等效频率而算出带宽 带宽就等于内存的速度
  • vite+react+ts+eslint+prettier构建react开发项目

    目录 一 构建项目 二 安装eslint和prettier的依赖 三 修改 eslintrc cjs 创建 prettierrc cjs 1 eslintrc cjs文件配置 2 prettierrc cjs文件配置 三 将错误显示在页面上
  • 蓝桥杯嵌入式CT117E-M4学习笔记08-串口通信实验

    文章目录 前言 一 实验原理 二 配置步骤 三 串口发送 1 直接使用HAL USART Transmit发送 2 使用重定向prtinf函数发送 四 串口接收 总结 前言 本节我们学习开发板的串口通信 一 实验原理 1 串口通信原理 详见