本节教程演示:通过串口0打印红外遥控器的对应键值
KEIL
MSPM0G3507开发板
红外遥控器
Type-C数据线或DAP-Link
对开发板进行程序下载或仿真
.png)
.png)
通过中断触发红外数据的接收,根据红外接收器的输出引脚高电平时长判断数据是0或1,从而实现红外遥控器键值的数据读取。
NEC协议
开发板配套的遥控器使用的是NEC协议,载波频率为38KHz。
| 格式 | 作用 |
|---|---|
| 引导码 | 标识指令的开始 |
| 地址码(用户码) | 标识遥控器的设备地址 |
| 地址反码 | 增强数据传输可靠性 |
| 数据码 | 具体遥控器指令 |
| 数据反码 | 增强数据传输可靠性 |


0:560us的38KHz载波 + 560us的无载波间隔组成
1:560us的38KHz载波 + 1680us的无载波间隔组成
0:560us低电平 + 560us高电平
1:560us低电平 + 1680us高电平
当红外接收器收到红外载波信号时,HS0038B的DATA输出引脚输出低电平
当红外接收器没有收到红外载波信号时,HS0038B的DATA输出引脚输出高电平
| 红外接收器(开发板集成) | 对应引脚 |
|---|---|
| HS0038B | PB3 |
具体可以参考基础教程完成开发环境的搭建。




主要介绍用户编写的功能代码,详细代码可以自行打开我们提供的工程文件,进入Bsp文件夹下查看源代码。
函数:receiving_infrared_data
| 函数原型 | uint8_treceiving_infrared_data() |
|---|---|
| 功能描述 | 接收红外数据 |
| 输入参数 | 无 |
| 输出参数 | 红外数据 |
函数:guide_and_repeat_code_judgment
| 函数原型 | uint8_t guide_and_repeat_code_judgment(void) |
|---|---|
| 功能描述 | 红外数据是否正确判断 |
| 输入参数 | 无 |
| 输出参数 | 0和1用来判断地址码和命令码是否正确 |
下载程序成功后,按一下开发板的RESET按键,观察串口调试助手现象!
xxxxxxxxxx程序下载可以参考【3、开发环境搭建及使用:3.Uniflash烧录】
现象:
按红外遥控器上的不同键值,串口会打印不同键值对应的数据。
