【百问网】7天物联网智能家居 第四天:中断与串口

一.什么是中断?

通常,把CPU内部产生的紧急事件叫做异常,比如非法指令(除零)、地址访问越界等;把来自CPU外 部的片上外设产生的紧急事件叫做中断,比如GPIO引脚电平变化、定时器溢出等。异常和中断的效果基本 一致,都是暂停当前任务,优先执行紧急事件,因此一般将中断和异常统称为中断。

STM32 的中断和优先级

 STM32中断重点理解中断优先级分组,然后根据中断优先级分组确定抢占优先级级数和子优先级级数。 体现在编程里,就是根据中断需求,先使用“HAL_NVIC_SetPriorityGrouping()”函数设置中断优先级分组, 再使用“HAL_NVIC_SetPriority()”函数设置不同中断的抢占优先级级数和子优先级级数。

假设中断A的抢占优先级比中断B的抢占优先级高,两个中断同时发生,那么中断A优先执行。

假设中断A的抢占优先级和中断B的抢占优先级一样,两个中断同时发生,那么子优先级高的中断优先执行。

假设中断A的抢占优先级比中断B的抢占优先级高,中断B先发生,随后A也发生,那么将暂停中断B, 先执行中断A,A执行完后,再回来执行中断B,最后执行主程序,这种效果即中断嵌套。

假设中断A的抢占优先级比中断B的抢占优先级一样,中断A的子优先级比中断B的子优先级高,中断B 先发生,随后A也发生,那么中断A将等待中断B执行完后,才会执行中断A,即子优先级不能中断嵌套。

假设中断A的抢占优先级和中断B的抢占优先级一样,且子优先级也一样,两个中断同时发生,那么根 据前面表 10.2.1 顺序,排在前面的先执行。

        总结中断是否会优先执行依据:首先是抢占先式优先级等级,其次是子优先级等级,只有抢占优先级才 可能出现中断嵌套。

二.通信

        按照数据传输的方式,通信可以分为串行通信和并行通信。串行通信简单的说就是数据依次传输,比如 要传输0x11111111,一位一位的发送,需要发送8次。并行通信则是几个数据一起传输,同样是0x11111111, 如果8位一起发送,只需要发送1次,如下图所示

 同样,我们要认识一下全双工,半双工,单工。

        全双工就像电话通信,双方任意时刻都可以同时收发信息;

        半双工就像对讲机通信,双向都可得到信息, 但是同一时刻只能是一方发射另一方接收,发射和接收不能同时进行;

        单工就像收音机,只能由广播站发送 给收音机,单向不可逆的。

         同步通信的做法是加一个时钟信号,发送方和接收方在这个时钟的节拍下传输数据,比如常 见的SPI、I 2 C。而异步通信的做法是对数据进行封装,在数据开头加上起始信号,在数据结尾加上终止信号, 双方就按这个规则传输数据        ​​​​​​​

        说到串口,经常提到TTL、RS232、RS422、RS485,简单的说,就是为了适应不同的环境条件,使用了 不同的电平标准。假如微处理器和板载的蓝牙透传模块通信时,一般就使用TTL电平,引脚直接连接即可。 假如微处理器在工业现场,需要连接一个几十米外的装置,则应该考虑将TTL电平转为RS232、RS422、RS485。​​​​​​​

串口通信通常需要三根线,Tx,Rx,GND。

 串口在嵌入式中经常使用,一般使用UART就足够了,常见的用途如下:

1. 作为调试口,打印程序运行的状态信息;

2. 连接串口接口的模块(比如GPS模块),传输数据;

3. 通过电平转换芯片变为RS232/RS485电平,连接工控设备;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值