STM32 串口代码配置

news2024/10/6 0:35:37

一、首先开发板上关于串口1的引脚配置已经配置好了,位置在SYSTEM的 usart.c 文件中(注意:只配置了串口1的,其他使用时需要自己配置)

重要的是明白配置的参数都是什么意思,针对实现不同的串口功能有什么影响

二、主要是结合串口的固件库函数使用,熟悉固件库中各个函数的使用方法

串口配置:

1.三个结构体
2.使能外设引脚时钟,使能串口外设时钟
3.F407每个引脚功能很多,所以需要配置引脚的功能模式(引脚的各个配置对于引脚的输入输出功能都有什么影响,在此暂且默认为例程的配置,其他串口不同的配置后续再做研究)
进行引脚初始化设置
4.复用功能配置,将引脚的功能定为串口外设要使用的引脚
5.对串口外设需要实现的功能进行相应的参数配置
在这里插入图片描述

注意有些硬件设备上USB串口和USART引脚并没有连接起来,需要通过跳线帽连接

这样连接,可以实现通过USB口下载程序以及传输数据

这张图就是其基本原理,

需要配置的参数


① 串口时钟使能,GPIO 时钟使能
② 设置引脚复用器映射
③ GPIO 端口初始化设置
④ 串口参数初始化
⑤ 初始化 NVIC 并且开启串口中断,配置中断参数
这个位置要注意怎样开启中断的
⑥ 使能串口

整个配置的思路在库函数书中有详细的描述

必须在 usart.h 里面设置
EN_USART1_RX 为 1(默认设置就是 1 的)。该函数才会配置中断使能,以及开启串口 1 的 NVIC
中断。这里我们把串口 1 中断放在组 2,优先级设置为组 2 里面的最低

(这个位置中断的优先级分组又表示什么意思,有什么影响呢?有几种配置方式)

串口 1 的中断服务函数 USART1_IRQHandler

USART_SendData(USART1, USART_RX_BUF[t]); //向串口 1 发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
第一句,其实就是发送一个字节到串口。第二句呢,就是我们在我们发送一个数据到串口
之后,要检测这个数据是否已经被发送完成了

1.波特率 计算公式
2.8位数据位
3.1个停止位
4.无奇偶校验
5.无硬件流控制
6.允许收发数据

在主函数中初始化串口的时候报错 函数的参数太少

原因是:串口初始化没有给波特率 在这里插入图片描述

USART 框图 模式配置应该是必须要了解的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719523.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

入门Python笔记(基础)

入门Python笔记 入门Python笔记(基础)1. Python的特点2. Python安装3. Python中的数据类型3.1 数字类型3.1.1 整数类型3.1.2 浮点类型3.1.3 复数类型3.1.4 布尔类型 3.2 数字类型的相互转换 4. 运算符4.1 算术运算符4.2 比较运算符4.3 逻辑运算符4.4 位运算符4.5 赋值运算符4.6…

基于Java SpringBoot和Vue UniAPP的微信商城小程序

摘要 近年来,随着我国网络基础设施的不断完善和信息技术的不断发展,第三方支付手段得到了广泛的普及,网上购物已经成为人们生活中的重要内容,基于PC平台的网上商城系统可以足不出户就可以享受购物。 基于手机的网购微信小程序发挥…

Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)

1、Spark概述 1.1 什么是Spark Spark是一个基于内存的快速、通用、可扩展的大数据分析计算引擎。 1.2 Hadoop和Spark历史 Hadoop的Yarn框架比Spark框架诞生的晚,所以Spark自己也设计了一套资源调度框架。 1.3 Hadoop和Spark框架对比 1.4 Spark内置模块 模块名作…

前端Vue自定义轮播图视频播放组件 仿京东商品详情轮播图视频Video播放效果 可图片预览

前端Vue自定义轮播图视频播放组件 仿京东商品详情轮播图视频Video播放 &#xff0c;可图片预览&#xff0c;下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13325 效果图如下: # cc-videoSwiper #### 使用方法 使用方法 <!-- g…

怎么学习PHP会话管理和用户认证? - 易智编译EaseEditing

学习PHP会话管理和用户认证可以按照以下步骤进行&#xff1a; 理解基本概念&#xff1a; 首先&#xff0c;了解会话管理和用户认证的基本概念和原理。会话管理涉及在Web应用程序中跟踪用户状态和数据的技术&#xff0c;而用户认证涉及验证用户身份的过程。 学习PHP的会话管理…

telnet登录ARM开发板

telnet远程登录ARM开发板 1、ARM开发板中telnet设置2、ubuntu登录开发板 Telnet协议是TCP/IP协议族中的一员&#xff0c;是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序&#xff0c;用…

2023年7月8日(星期六):骑行小空山

2023年7月8日(星期六)&#xff1a;骑行小空山&#xff0c;早8:30到9:00&#xff0c; 昆明氧气厂门囗红绿灯下&#xff08;学府路和普吉路交叉路囗&#xff09;&#xff0c;9:30点准时出发 【因迟到者&#xff0c;骑行速度快者&#xff0c;可自行追赶偶遇。】 偶遇地点: 昆明氧…

Mysql,使用 UNION ALL 处理 ‘无中生有‘ 的数据。

在日常的开发工作中&#xff0c;有时我们需要在SQL层面添加一些数据库表中没有的数据&#xff0c;那么我们就可以使用 UNION ALL 关键字来解决。 一、简单的无中生有&#xff1a;在查询返回结果中添加数据 以下方的SQL1为例&#xff0c;我们根据 id 查询 user 表中的数据&#…

118.浏览器支持和修复Safari浏览器的Flexbox漏洞

在我们之前的文章中&#xff0c;我们介绍了测试的步骤 虽然现在大部分新版本的浏览器都能支持99%的CSS属性&#xff0c;但是不排除的是仍然有一些用户使用老的IE浏览器或者版本较低的浏览器去浏览我们的网页&#xff0c;这样我们的网站可能无法按照我们的预期工作&#xff1b…

k8s从节点加入主节点[preflight] Running pre-flight checks卡住(已解决)

文章目录 一、写在前面二、问题排查1、执行join时加上-v2参数查看日志2、处理证书问题3、重启4、其他方法15、其他方法2 三、总结参考资料 一、写在前面 部署k8s时&#xff0c;主节点部署成功了&#xff0c;从节点1执行kubeadm join也成功了&#xff0c;从节点2执行kubeadm jo…

传输控制协议 TCP

文章目录 一、TCP报文格式1.报头格式2.TCP最大段长度 MSS 二、TCP连接建立与释放1.连接建立&#xff1a;三次握手2.报文传输3.连接释放&#xff1a;四次挥手4.保持定时器与时间等待定时器 三、TCP差错重传1.字节流状态分类与滑动窗口&#xff08;发送&#xff09;① 滑动窗口两…

基于 RK3399+fpga 的 VME 总线控制器设计(一)总体设计

2.1 需求分析及技术指标 2.1.1 需求分析 VME 总线控制器需要实现数据传输、中断处理、测量显示等功能。同时还需 要具有操作系统、底层驱动程序以及功能接口等&#xff0c;以方便用户进行上层应用软件开 发及使用。 本课题需要实现 VME 控制器的国产化开发&#xff0…

mysql误操作数据如何恢复

在此之前还是强烈建议大家进行定时备份&#xff0c;不然数据量多的话真的会有点emo的&#xff0c;好啦进入正题 操作背景&#xff1a;服务器windows server2012 数据库MySQL8.0 本人情况很奇葩&#xff0c;之前是备份了目标表的转储sql&#xff0c;但是我不知道是什么时候备…

RabbitMQ的基本概念和七种队列模式

I. RabbitMQ的基本概念 1. 生产者/消费者 生产者(Producer) 消息的创建者。 负责创建和推送数据到消息服务器。 消费者(Consumer) 消息的接收方。 负责接收消息和处理数据。 2. 消息队列(Queue) 消息队列是RabbitMQ的内部对象&#xff0c;用于存储生产者的消息直到发送给消…

【手撕算法|动态规划系列No.2】leetcode面试题 08.01. 三步问题

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

linux入门练级篇 第二讲 基本指令2

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

MySQL Optimization Learning(一)

目录 一、MySQL性能监控 1、show profile 2、performance schema 2.1、MYSQL performance schema详解 3、show processlist 一、MySQL性能监控 MySQL官网 拖到首页最下方找到 MySQL Reference Manual ->cmd命令行 C:\Users\Administrator>mysql -uroot -proot …

vue vant Calendar日历定制

calendar文档 <template> ...<Calendar :min-date"start" :max-date"end":title"null" :show-mark"false" :show-subtitle"false" :show-confirm"false" :show-title"true":poppable"fa…

Mongodb 对于Sort排序能够支持的最大内存限制查看和修改

报错&#xff1a; Executor error during find command: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit. MongoDB Server对于Sort排序能够支持的最大内存限制查看&#xff1a; [rootdata…

MySQL8.0 创建用户、配置用户权限、添加外网访问

MySQL8.0 创建用户、配置用户权限、添加外网访问 添加用户、外网访问 在MySQL 8.0中&#xff0c;root用户的外网访问权限默认是被禁止的。要修改root用户的外网访问权限&#xff0c;您需要进行以下步骤&#xff1a; 连接到MySQL服务器。您可以使用MySQL命令行客户端或其他数据…