4.串口通信

news/2024/9/23 4:30:06/

 USART波特率为9600,采用8倍过采样 USART6 fck频率:84Mhz;

USARTDIV = 1093.75

DIV_M = (u32)USARTDIV

DIV_F = (USARTDIV - DIV_M) * 8 + 0.5

USART6->BRR |= (DIV_M << 4) |= DIV_F

    float USARTDIV;u32 DIV_M,DIV_F;RCC->AHB1ENR |= 1;//端口A使能RCC->APB2ENR |= (1<<4);//usart1时钟使能GPIOA->MODER &= ~(0xf<<18);//PA9,PA10模式清零GPIOA->MODER |= (0xa<<18);//PA9,PA10模式为复用//AFP复位功能高位寄存器GPIOA->AFR[1] |= 7<<8;//USART1_RX 复用到PA10GPIOA->AFR[1] |= 7<<4;//USART1_RX 复用到PA9//配置usart1USARTDIV = 84000000 / 16 / bps;//波特率配置DIV_M = (u32)USARTDIV;//整数部分公式DIV_F = (USARTDIV - DIV_M) * 16 + 0.5f;//小数部分公式USART1->BRR |= DIV_M<<4 | DIV_F;//写入波特率寄存器USART1->CR1 &= ~(1<<15);//过采样为16倍,OVER8 = 0;USART1->CR1 &= ~(1<<12);//字长:1 起始位,8 数据位,n 停止位USART1->CR1 |= (1<<3);//使能发送器USART1->CR1 |= (1<<2);//使能接收器USART1->CR2 &= ~(3<<12);//停止位为1bitUSART1->CR1 |= 1<<13;//串口1使能

串口四要素:波特率,停止位,数据位,校验位

波特率:控制两个器件之间的数据传输速率,波特率越大数据传输速率就快      MCU -à PC通信   波特率设置为9600/115200256000(也是可以的,不建议用)

停止位:代表一帧数据传输的结束    选择1bit

数据位:决定数据传输长度     8bit= 1byte

校验位:奇偶校验     不使用

Odd:奇校验

Even:  偶校验

串口初始化

  1. 硬件分析,先对原理图进行分析可以复用的IO口,确认IO口

  2. 复用的IO初始化为复用模式

  3. //AFP复位功能高位寄存器 不用担心发送和接受端,硬件自动调整

    GPIOA->AFR[1] |= 7<<8;//USART1_RX 复用到PA10

    GPIOA->AFR[1] |= 7<<4;//USART1_RX 复用到PA9

  1. 配置串口

  2. USART_BRR波特率寄存器

  3. USART_CR1对着配,使能以及过采样的倍数,最后串口使能

  4. USART_CR2设置停止位

USART_SR为状态寄存器,判断是否发送和接收数据

USART_DR为数据寄存器,包括数据接收和发送两个寄存器,是数据所在地


http://www.ppmy.cn/news/1441467.html

相关文章

自定义View-旋转变色圆角三角形的绘制

本文字数&#xff1a;3151字 预计阅读时间&#xff1a;20分钟 在现代设计中&#xff0c;动效图在APP的UI界面中所起到的作用无疑是显著的。相比于静态的界面&#xff0c;动效更符合人类的自然认知体系&#xff0c;它有效地降低了用户的认知负载&#xff0c;UI动效俨然已经成为了…

Python中实现多层感知机(MLP)的深度学习模型

深度学习已经成为机器学习领域的一个热门话题&#xff0c;而多层感知机&#xff08;MLP&#xff09;是最基础的深度学习模型之一。在这篇教程中&#xff0c;我将向你展示如何使用Python来实现一个简单的MLP模型。 什么是多层感知机&#xff08;MLP&#xff09;&#xff1f; 多…

【Ubuntu20.04+gcc-9.4.0】Openface在linux下的详细环境配置(2024.4月)

近期&#xff0c;需要使用openface来进行人脸的crop&#xff0c;因此踩坑配置出在ubuntu20.04下的具体流程。话不多说&#xff0c;直接进入主题。 务必注意&#xff0c;按照顺序执行&#xff0c;否则很大概率报错&#xff01;&#xff01;&#xff01;1. 安装GCC&#xff0c;我…

【C++】6-11 停车场收费问题 分数 20

6-11 停车场收费问题 分数 20 全屏浏览 切换布局 作者 徐婉珍 单位 广东东软学院 在停车场收费系统中&#xff0c;收费者会根据车型的不同按不同的单价和计费方式收取不同的停车费&#xff0c;其中&#xff1a; 轿车Car&#xff1a;每小时8元&#xff0c;超过30分钟按一小时…

windows下pysqlite3安装

pysqlite3 下载地址&#xff1a;SQLite Download Page windows下安装 首先在官网中下载以下文件 sqlite-amalgamation-3450300.zip #源码文件 sqlite-dll-win-x64-3450300.zip # 根据系统选择32或者64&#xff0c;可通过查看我的电脑属性中查看 sqlite-tools-win-x64-345…

【ARMv9 DSU-120 系列 1 -- DSU-120 DynamIQ 概述】

请阅读【Arm DynamIQ™ Shared Unit-120 专栏 】 文章目录 DSU-120 DynamIQ 概述DSU-120 集群的关键特点DSU-120 电源管理介绍电源域管理功耗降低机制功耗与性能平衡DSU-120 接口介绍内存接口外设端口(Peripheral Port)加速器一致性端口(ACP,Accelerator Coherency Port)

ISP比普通的静态代理相比有什么优势?

ISP&#xff08;Internet Service Provider&#xff09;&#xff0c;即互联网服务提供商&#xff0c;是向广大用户综合提供互联网接入业务、信息业务、增值业务的电信运营商。而静态代理则是一个固定不变的代理IP地址&#xff0c;具有稳定性强、兼容性好和管理方便等特点。当我…

分类分析|KNN分类模型及其Python实现

KNN分类模型及其Python实现 1. KNN算法思想2. KNN算法步骤2.1 KNN主要优点2.2 KNN主要缺点 3. Python实现KNN分类算法3.1 自定义方法实现KNN分类3.2 调用scikit-learn模块实现KNN分类 4. K值的确定 在之前文章 分类分析|贝叶斯分类器及其Python实现中&#xff0c;我们对分类分…