STM32实验7——串口应用

实验要求:

接收红外遥控器的按键信号,把按键信号发射到PC机上显示

任务拆分:

  1. 接收并解码红外按键信号
  2. 串口printf显示 (可参考stm32例程/15-A/D/printf.h)

基础知识

UART是什么?

UART的全称为Universal Asynchronous Receiver/Transmitter,通用异步收发传输器,它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。(来源:百度百科 https://baike.baidu.com/item/UART/4429746?fr=aladdin)

总之,UART就是一个可以接收/发送字节的功能模块。

红外遥控实验(B站视频)

红外遥控原理介绍

红外遥控器采用载波的方式传送二进制编码,常用的载波频率为38khz.红外遥控器将二进制脉冲码调制在38khz的载波上,经缓冲放大后送至红外发光二极管,发射出去。

NEC协议

接收头收到的信号:

逻辑1:560us低+1680us高

逻辑0:560us低+560us高

所以可以通过计算高电平时间判断收到的数据是0还是1

数据格式:引导码、地址码、地址反码、控制码、控制反码

(怎么一次信号这么多位数啊啊啊啊啊)

硬件电路

红外接收头

正对接收头的凸起处看,从左至右,VOUT GND VDD

程序编写

程序框架
  1. 使能接收端口PG15及AFIO时钟,映射PG15至外部中断线上,初始化EXTI
  2. 编写红外解码函数(在EXTI中断处理)
  3. 编写主函数
  • [x] 外部中断
上一篇:STM32串行通信原理(UART/USART)(STM32篇)


下一篇:postman报错Error write EPROTO 93988952error100000f7SSL routinesOPENSSL_internalWRONG_VERSION_NUM