🚀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 1 | Extern Input 1 Filter Polarity 1,外部输入1滤波极性1 |
TI1FP2:TI1 Filter Polarity 2 | Extern 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引脚去掉,串口就退化成单工了。