IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 手把手教你单片机HAL库开发——中断,通信、串口 -> 正文阅读

[嵌入式]手把手教你单片机HAL库开发——中断,通信、串口


前言

非常感谢百问网黄老师今天的授课!
在这里推荐大家学嵌入式上百问网官网,更是有明星老师韦东山老师亲自授课。


中断

特别提示:因为在STM32MP157实验中,详细的讲述了中断,所以这里对于基本的概念就不再重述,只进行重点分析。

基本概念

通常把CPU内部产生的紧急事件,比如非法指令(除0),地址越界访问等称为异常;对于CPU外部产生的紧急事件,比如GPIO电平引脚变化,定时器溢出等称为中断。但是两者产生的效果基本一致,所以就统一称为中断。

ARM中的中断类型和种类如下
在这里插入图片描述
STM32的中断和优先级

在这里插入图片描述

使用中断来获取按键并控制LED

原理图入如下

在这里插入图片描述

CubeMX设置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运行结果

在这里插入图片描述

通信

串行通信/并行通信

数据按照传输方式,通信可以分为串行通信和并行通信。
串行通信:简单的说就是数据依次传输。
并行传输:就是几个数据一起传输
如下:
在这里插入图片描述由此可见,串行传输使用的通信线少,所以成本较低,并行传输使用通信线多,传输数据快。
但是随着科技的发展,并行传输因为随着数据传输速率的提升导致通信线之间的相互影响较大,所以目前串行传输的数据还比并行传输更快。

全双工/半双工/单工通信

按照数据传输方向,通信可以分为全双工、半双工、单工。相信通过下面的一幅图即可明白三者的区别

在这里插入图片描述

同步通信/异步通信

按数据同步的方式,通信可以分为同步通信和异步通信。数据双方之间传输时,需要指定保证数据传输的准确。
同步通信:就是加一个时钟信号,发送方和接收方在这个时钟节拍下传输数据,比如常见的SPI。IIC就是同步通信。
异步通信:对数据进行封装,在数据的开头加上起始信号,在数据结尾加上终止信号,双方按这个规则传输数据,比如UART,1-Wire。

因为往往通过是否有时钟线来区分二者。

通信速率

对于同步通信,通信速率由时钟信号决定,时钟信号越快,传输速度就越快。
对于异步通信,需要收发双方提前统一通信速率,这也就是我们串口调试时,波特率不对显示乱码的原因。

通常使用比特率来描述通信速率的快慢,与之容易混淆的是波特率。

  • 比特率:系统在单位时间内传输的比特位个数
  • 波特率:系统在单位时间内传输的码元个数。(码元就是承载信息量的基本单位)
    码元有N个状态时,比特率与波特率的关系式: Rb=RBxlog2N

常见通信协议

在嵌入式中,有众多的通信协议,往往从性能,成本,稳定性,易用性等角度考虑选择合适的协议。常见的协议如下:
在这里插入图片描述

串口

基础知识

说到串口,经常提到TTL、 RS232、 RS422、 RS485,简单的说,就是为了适应不同的环境条件,使用了不同的电平标准。假如微处理器和板载的蓝牙透传模块通信时,一般就使用TTL电平,引脚直接连接即可。假如微处理器在工业现场,需要连接一个几十米外的装置,则应该考虑将TTL电平转为RS232、 RS422、 RS485。
在这里插入图片描述
常见通信接口标准
在这里插入图片描述在这里插入图片描述以TTL电平的接口为例讲解串口怎么传输数据,对于RS232/RS422/RS485等接口,仅仅是把TTL电平转换为不同的电平值,或者转换为差分信号。

TTL接口的串口,硬件连接如下图:
在这里插入图片描述
信号波形如下图:
在这里插入图片描述

STM32的串口

在嵌入式中,很多MCU和外设模块都集成有UART外设。 STM32F103系列最多有3个通用同步异步收发器( Universal synchronous asynchronous receiver transmitter, USART), 2个通用异步收发器( Universal
asynchronous receiver transmitter, UART)。 USART和UART的主要区别在于, USART支持同步通信,该模式有一根时钟线提供时钟
串口在嵌入式中经常使用,一般使用UART就足够了,常见的用途如下:

  1. 作为调试口,打印程序运行的状态信息;
  2. 连接串口接口的模块(比如GPS模块),传输数据;
  3. 通过电平转换芯片变为RS232/RS485电平,连接工控设备;

STM32F103系列不同USART所支持的功能如下图
在这里插入图片描述
USART内部结构如下
在这里插入图片描述

通信、串口代码设计

原理图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

CubeMX设置

在这里插入图片描述

生成代码

源码分析

在这里插入图片描述
printf函数重构

在这里插入图片描述
主函数
在这里插入图片描述

查看打印信息

在这里插入图片描述

在这里插入图片描述
完成

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:20:04  更:2022-02-19 01:22:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:34:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码