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

STM32G473串口通信-USART/UART配置和清除串口寄存器状态的注意事项

USART和UART配置的区别

如果USART使用的是异步通信,那么UART与USART配置基本相同。

USART配置如下:
在这里插入图片描述

UART配置如下:

如果USART使用的是同步通信,那么UART配置就有差异。

  1. 首先通信双方都是使用USART的同步通信,一个主机,一个从机。

  2. USART同步通信使用的结构体就不一样
    USART使用同步通信的结构体为:

    在这里插入图片描述
    USART异同通信使用的结构体
    在这里插入图片描述
    在这里插入图片描述

  3. 从结构体中就可以看出二者的差别,那么不同的地方怎么配置呢?这个问题我想就必须要看用户手册了,因为官方好像没有给出例程。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 从官方用户手册的文件描述可以看出,配置为主机模式的步骤和说明
    在这里插入图片描述

  5. 从官方用户手册的文件描述可以看出,配置为从机模式的步骤和说明

在这里插入图片描述

  1. 文档中说操作对应寄存器的位,但是官方的函数中没有提供对应的函数,我们可以这样做:
    这里以USART1为例,配置主机模式,从机模式类似就不做过多的说明。
    在这里插入图片描述
    寄存器对应位的配置一定要看用户手册,否则容易出问题,比如CR3寄存器的HDSEL位就有如下要求:
    在这里插入图片描述
    注意:我上面的配置不一定能够成功,我没有测试过。为什么没有测试,因为我只有一块这样的板。尴尬!

清除串口寄存器位的注意事项

清除串口状态寄存器ISR的位,还是之前的那句话"一定要看用户手册",当然如果是调用官方的库函数,当我没说。如果是自己编写的函数来清除对应的状态位,就一定要看用户手册。

比如我需要清除ISR寄存器的ORE位(下图中已经明确了,只能读),如果是按照经验可能会这样操作
在这里插入图片描述

在这里插入图片描述
但是当我们阅读用户手册对该寄存器对应位的描述时,就会发现问题所在,如下图。
在这里插入图片描述
根据用户手册中的描述清楚ISR寄存器的ORE位的操作为:
在这里插入图片描述

使用官方库函数进行清楚ISR对应位

下图就是官方的库函数,用以清除状态。从官方的库函数中也可以看出使用的ICR寄存器。

  • HANDLE:就是USART_HandleTypeDef结构体定义的husart1
  • FLAG:就是要清楚的状态位,官方的库函数的描述中有给出哪些状态可以被该函数清除。

在这里插入图片描述

从上面的也可以看出官方宏定义的与官方的用户手册寄存器是相关的(命名等),特别是对应寄存器的位。

当然看英文文档是非常痛苦的一件事情,但是痛就痛吧,无所畏惧。

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

相关文章:

  • Rail开发日志_5
  • 基于Selenium和FFmpeg的全平台短视频自动化发布系统
  • Maven下载与配置对Java项目的理解
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (三)RISC-V架构深度解剖(下)
  • SpringBoot 使用注解获取配置文件中的值
  • c/c++拷贝函数
  • Claude Code是什么?国内如何使用到Claude Code?附国内最新使用教程
  • FlashBots 之 MEV-boost
  • 决策树算法在医学影像诊断中的广泛应用
  • 用Python和OpenCV从零搭建一个完整的双目视觉系统(六 最终篇)
  • CentOS 安装 Redis 简明指南
  • 【Centos】Redis Cluster 集群部署图文步骤
  • VMware安装Centos 7
  • 包稳定的Docker 安装方式(CentOS)
  • 云、实时、时序数据库混合应用:医疗数据管理的革新与展望(上)
  • 意识边界的算法战争—脑机接口技术重构人类认知的颠覆性挑战
  • C++(STL源码刨析/List)
  • 锂电池自动化生产线的现状与发展
  • 【Java】【力扣】102.二叉树层序遍历
  • 如何将ONLYOFFICE文档集成到Go网页应用中
  • css——width: fit-content 宽度、自适应
  • VR带看:开启多元领域新视界
  • VR协作海外云:跨国企业沉浸式办公解决方案
  • UDP服务器的优缺点都包含哪些?
  • 镜像(Mirror/Image)
  • 如何准确查看服务器网络的利用率?
  • K8s Service 终极解析:源码、性能、故障排查全攻略
  • 深入解码 Docker 镜像与容器的奇妙世界
  • 奇哥面试:RabbitMQ工作模式深度剖析与Spring整合MQ
  • cellphoneDB v5更新与Python环境可视化