江协科技STM32学习- P25 UART串口协议

news2024/10/30 11:20:54

       🚀write in front🚀  
🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 

💬本系列哔哩哔哩江科大STM32的视频为主以及自己的总结梳理📚 

🚀Projeet source code🚀   

💾工程代码放在了本人的Gitee仓库:iPickCan (iPickCan) - Gitee.com

引用:

STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩_bilibili

Keil5 MDK版 下载与安装教程(STM32单片机编程软件)_mdk528-CSDN博客

STM32之Keil5 MDK的安装与下载_keil5下载程序到单片机stm32-CSDN博客

0. 江协科技/江科大-STM32入门教程-各章节详细笔记-查阅传送门-STM32标准库开发_江协科技stm32笔记-CSDN博客

【STM32】江科大STM32学习笔记汇总(已完结)_stm32江科大笔记-CSDN博客

江科大STM32学习笔记(上)_stm32博客-CSDN博客

STM32学习笔记一(基于标准库学习)_电平输出推免-CSDN博客

STM32 MCU学习资源-CSDN博客

stm32学习笔记-作者: Vera工程师养成记

stem32江科大自学笔记-CSDN博客

术语:

英文缩写描述
GPIO:General Purpose Input Onuput通用输入输出
AFIO:Alternate Function Input Output复用输入输出
AO:Analog Output模拟输出
DO:Digital Output数字输出
内部时钟源 CK_INT:Clock Internal内部时钟源
外部时钟源 ETR:External clock 时钟源 External clock 
外部时钟源 ETR:External clock mode 1外部时钟源 Extern Input pin 时钟模式1
外部时钟源 ETR:External clock mode 2外部时钟源 Extern Trigger 时钟模式2
外部时钟源 ITRx:Internal trigger inputs外部时钟源,ITRx (Internal trigger inputs)内部触发输入
外部时钟源 TIx:external input pin 外部时钟源 TIx (external input pin)外部输入引脚
CCR:Capture/Comapre Register捕获/比较寄存器
OC:Output Compare输出比较
IC:Input Capture输入捕获
TI1FP1:TI1 Filter Polarity 1Extern Input 1 Filter Polarity 1,外部输入1滤波极性1
TI1FP2:TI1 Filter Polarity 2Extern Input 1 Filter Polarity 2,外部输入1滤波极性2
DMA:Direct Memory Access直接存储器存取

正文:

0. 概述

从 2024/06/12 定下计划开始学习下江协科技STM32课程,接下来将会按照哔站上江协科技STM32的教学视频来学习入门STM32 开发,本文是视频教程 P2 STM32简介一讲的笔记。

1.🚢通信

我们为什么要通信?

通信的目的

将一个设备的数据传送到另一个设备,扩展硬件系统

比如STM32芯片它里面集成了很多功能模块,比如定时器计数,PWM输出、AD采集等等。这些都是芯片内部的电路,这些电路的配置寄存器,数据寄存器都在芯片里面,操作这些寄存器非常简单,直接读写就行了。

但是也有些功能是STM32内部没有的,比如我们想要蓝牙无线遥控的功能,想要陀螺仪加速度计测量姿态的功能。

STM32没有这些功能,所以就只能外挂芯片来完成。外挂的芯片的数据都在STM32外面。STM32如何才能获取到这些数据?

这就需要我们在这两个设备之间连接上一根或多根通讯线通过通信线路发送或者接收数据完成数据交换从而实现控制外挂模块和读取外挂模块数据的目的。所以在这里通信的目的是将一个设备的数据传送到另一个设备。单片机有了通信的功能就能与众多别的模块互联极大的扩展了硬件系统。

通信需要遵守通信协议

通信协议

制定通信的规则,通信双方按照协议规则进行数据收发

比如说你考试的时候想给别人传答案,你就可以和对方约定一个通信协议。比如先咳嗽一声,代表通信开始,然后竖一个手指,代表发生a,竖两个手指代表发生b,竖三个手指代表发送c,然后挥一挥手,代表通讯结束。这就是一种通信方式。

通信的目的是进行信息传递。双方约定的规则,就是通信协议。当然,考试作弊是不对的!这里只是打个比方!

2.🚢STM32的通信协议

以上这些通信接口,我们这个C8T6芯片是全部都支持的。

这个表只是列了一个最典型的参数。因为各种通讯协议应用都非常宽泛,参数也很多。所以这里列出的仅是它最常用最简单的配置。

各种协议的通信引脚介绍

🔊USART串口通信,它的引脚是TX和RX,有的地方也叫TXD和RXD,这两种名称是一个意思,TX是数据发送脚,RX是数据接收脚。

🔊I2C通信,引脚SCL是时钟,SDA是数

🔊SPI通信,引脚SCLK是时钟,MOSI(Mater Output Slave Input)是主机输出数据脚,MISO(Mater Input Slave Output)是主机输入数据脚,CS是片选,用于指令通信的对象。

🔊CAN通信,引脚是CAN_H和CAN_L这两个是差分数据,用两个引脚表示一个差分数据。

🔊USB通信,引脚是DP(Data Positive)和DM(Data Minus),或者叫D+和D-,也是一对差分数据脚。

这就是这些通信协议规定的引脚,数据按照协议的规定,在这些引脚上进行输入和输出,从而实现通信。

通信空间和时间

全双工就是指通信双方能够同时进行双向通信。一般来说,传双工的通信都有两根通信线,比如串口通信,一根TX发送,一根RX接收。SPI通信,一根MOSI发送,一根MISO接收。发送线路和接收线路互不影响全双工双向,同时

剩下的这些I2C、CAN看和USB都只有一根数据线,CAN和USB两根差分线也是组合成一根数据线的,所以都是半双工双向,分时

单工单向是指数据只能从一个设备到另一个设备,而不能反着来。比如把串口的RX引脚去掉,串口就退化成单工了。

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

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

相关文章

【c语言】运算符汇总(万字解析)

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C语言 目录 前言 一、c语言运算符的分类 二、各运算符的功能及使用 1. 算数运算符 - * / % 2. 位运算符 二进制和进制转换 二进制转十进制 十进制…

使用Python和OpenCV实现火焰检测

使用Python和OpenCV实现火焰检测 项目解释: 此 Python 代码是使用 OpenCV、线程、声音和电子邮件功能的火灾探测系统的简单示例。 以下是它的功能的简单描述: 导入库:代码首先导入必要的库: cv2:用于图像和视频处理…

Flink on yarn模式下,JobManager异常退出问题

这个问题排除了很久,其中更换了Flink版本,也更换了Hadoop版本一直无法解决,JobManager跑着跑着就异常退出了。资源管理器上是提示运行结束,运行状态是被Kill掉。 网上搜了一圈,都说内存不足、资源不足,配置…

第十八届联合国世界旅游组织/亚太旅游协会旅游趋势与展望大会在广西桂林开幕

10月19日,第十八届联合国世界旅游组织/亚太旅游协会旅游趋势与展望大会(以下简称“大会”)在广西桂林开幕,来自美国、英国、德国、俄罗斯、柬埔寨等25个国家约120名政府官员、专家学者和旅游业界精英齐聚一堂,围绕“亚洲及太平洋地区旅游业&a…

iOS Swift5算法恢复——HMAC

demangle的时候看到了CryptoSwift,HMAC,于是写一个helloworld,用于对照。 sudo gem install cocoapods pod init pods文件,注意要标注静态链接: # Uncomment the next line to define a global platform for your p…

MacOS/Macbook用户自定义字体安装教程

Mac本自定义字体 示例机型一、下载相关字体文件到本地二、打开启动台三、选择其他四、选择字体册五、添加字体六、选择字体七、安装字体八、安装完成 MacOS官网安装教程 示例机型 系统:MacOS12.6,芯片:M1Pro 一、下载相关字体文件到本地 二…

spyglass关于cdc检测的一处bug

最近在使用22版spyglass的cdc检测功能,发现struct_check的cdc检测实际时存在一些bug的。 构造如下电路,当qualifier和destination信号汇聚时,如果des信号完全将qualifier gate住,sg仍然会报ac_sync。当然此问题可以通过后续funct…

JS | CommonJS、AMD、CMD、ES6-Module、UMD五种JS模块化规范

目录 前言 一、CommonJS 模块化规范 二、ES6 模块化规范 三、AMD 模块化规范 四、CMD 模块化规范 五、UMD模块化规范 前言 这三个规范都是为Js模块化加载而生的,使模块能够按需加载,使系统同庞杂的代码得到组织和管理。模块化的管理代码使多人开发…

c# 值类型

目录 1、c#类型2、值类型2.1 结构体2.2 枚举 1、c#类型 类型(Type)又叫数据类型(Data Type)。 A data type is a homogeneous collection of values,effectively prensented,equipped with a set of operations which manipulate…

【YApi】接口管理平台

一、简介 YApi 是一个用于前后端开发团队协作的 API 管理平台,帮助团队更加高效地进行 API 接口的设计、测试、文档管理和版本控制等工作。 YApi 主要功能: API 设计和管理:提供 API 设计和文档生成工具,使开发者能够轻松创建、…

ubuntu20.04系统安装

文章目录 前言参考1 一、准备工作1、进入BIOS,设置 UEFI/Legacy Boot选项 为UEFI2、进入BIOS界面将Secure Boot禁用3、USB启动为enable 二、单系统安装1、插入U盘,电脑正常开机后 总结 前言 装了很多次ubuntu系统,整理一篇自己的文章很费时间…

5G 现网信令参数学习(2) - SIB1

目录 1. cellSelectionInfo 1.1 q-RxLevMin 2. cellAccessRelatedInfo 3. connEstFailureControl 4. si-SchedulingInfo 4.1 schedulingInfoList 4.2 si-WindowLength 5. servingCellConfigCommon 5.1 downlinkConfigCommon 5.1.1 frequencyInfoDL 5.1.2 initialDown…

【electron8】electron实现“图片”的另存为

注:该列出的代码,都在文章内示例出 1. 另存为按钮事件: const saveAsHandler async () > {const { path, sessionId } recordInfoif(typeof message ! string) return;// 因为我的图片是加密的,所以我需要根据接口返回的路…

Unity 两篇文章熟悉所有编辑器拓展关键类 (上)

本专栏基础资源来自唐老狮和siki学院,仅作学习交流使用,不作任何商业用途,吃水不忘打井人,谨遵教诲 编辑器扩展内容实在是太多太多了(本篇就有五千字) 所以分为两个篇章而且只用一些常用api举例&#xff0c…

数据结构——基础知识补充

1.队列 1.普通队列 queue.Queue 是 Python 标准库 queue 模块中的一个类,适用于多线程环境。它实现了线程安全的 FIFO(先进先出)队列。 2.双端队列 双端队列(Deque,Double-Ended Queue)是一种具有队列和…

基于大数据的智能家居销量数据分析

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…

AURIX Development Studio的使用入门

目录 一、在本地目录创建工作空间文件夹 二、进入AURIX编译器 1、选择之前创建的工作空间文件夹路径 2、修改外观 3、向工作空间中导入项目文件 4、将此项目转变为活跃项目 三、烧录和编译运行 四、ADS常用快捷键 初次安装好AURIX后,如何去熟悉该编译器的使用…

『大模型笔记』如何在无网路的情况下在Linux主机上安装NVIDIA Container Toolkit(nvidia-docker2)

如何在无网路的情况下在Linux主机上安装NVIDIA Container Toolkit(nvidia-docker2) 文章目录 一. 如何在无网路的情况下在Linux主机上安装NVIDIA Container Toolkit(NVIDIA-docker2)步骤 1. 确定您的硬件环境步骤2.去这里下载deb离线安装包步骤 3. 引用以下顺序安装套件步骤 4.…

论文阅读(二十九):Multi-scale Interactive Network for Salient Object Detection

文章目录 Abstract1.Introduction2.Scale VariationProposed Method3.1Network Overview3.2Aggregate Interaction Module3.3 Self-Interaction Module3.4Consistency-Enhanced Loss 4.Experiments4.1Implementation Details4.2 Comparison with State-of-the-arts4.3Ablation …

整合Mybatis-plus及最佳实践

项目引入Mybatis-plus 第一步: 引入starter依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId> </dependency>第二步: 使用MapperScan扫描mapper文件夹 SpringBootApplication Mappe…