1:串口触发遥控
优点:在复杂应用中,需要远程操作,网口+串口来实现指令发送,此处只列出串口控制实现,后续可以再引入网口和串口对接即可远程控制,遥控器和串口对接可以实现远程遥控。
1.1:串口指令接收处理
u8 Receice_Process(UART_TypeDef* uartx)
{
    u8 temp;
if(UART_GetITStatus(uartx, UART_IT_RXIEN))
{
UART_ClearITPendingBit(uartx, UART_IT_RXIEN);
///////////////////////////////////////////////////
temp = (u8)UART_ReceiveData(uartx);
  printf("串口触发:第 %d 号指令已发送到IRM",temp);
IRM_Transmit_Data(temp);  
}
}
1.2:红外发送
void IRM_Transmit_Data(uint8_t data)
{
  Output_Byte(UART1, data);
}
1.3:红外接收处理
void IRM_Receive_Process(void)
{
  u8 getbyte;
if(gUartRxSta == 1)
{
gUartRxSta = 0;
//
printf("\r\n IRM收到点灯指令:开始执行点灯程序 \r\n");
Flag_Led=gUartRxByte;
}
}
1.4:指令执行,效果展示
#define cmd_led_on      0x1
#define cmd_led_off     0x2
#define cmd_led_Toggle  0x3
#define cmd_led1_on     0x4
#define cmd_led1_off    0x5
#define cmd_led1_Toggle 0x6
uint8_t cmd_Num = 6;
uint8_t Flag_Led=0;
/// @}
void led_ctr(void)
{
switch(Flag_Led)
{
case 0:
{
}
break;
case cmd_led_on:
{
LED1_ON();
LED2_ON();
LED3_ON();
LED4_ON();
printf("1 号指令已执行:红绿蓝黄4灯全亮 \r\n");
}
break;
case cmd_led_off:
{
LED1_OFF();
LED2_OFF();
LED3_OFF();
LED4_OFF();
printf("2 号指令已执行:红绿蓝黄4灯全灭 \r\n");
}
break;
case cmd_led_Toggle:
{
LED1_TOGGLE();
LED2_TOGGLE();
LED3_TOGGLE();
LED4_TOGGLE();
printf("3 号指令已执行:红绿蓝黄4灯全闪 \r\n");
}
break;
case cmd_led1_on:
{
LED1_ON();
printf("4 号指令已执行:红色1号灯亮 \r\n");
}
break;
case cmd_led1_off:
{
LED1_OFF();
printf("5 号指令已执行:红色1号灯灭 \r\n");
}
break;
case cmd_led1_Toggle:
{
LED1_TOGGLE();
printf("6 号指令已执行:红色1号灯闪 \r\n");
}
break;
default:
printf("非范围内指令,不执行 \r\n");
break;
}
}
1.5 串口打印数据输出
[2023-01-02 19:13:02.253]# RECV ASCII>
非范围内指令,不执行
[2023-01-02 19:13:02.541]# SEND HEX>
00
[2023-01-02 19:13:02.610]# RECV ASCII>
串口触发:第 0 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:13:11.714]# SEND HEX>
01
[2023-01-02 19:13:11.775]# RECV ASCII>
串口触发:第 1 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:13:12.225]# RECV ASCII>
1 号指令已执行:红绿蓝黄4灯全亮
[2023-01-02 19:13:12.384]# SEND HEX>
00
[2023-01-02 19:13:12.457]# RECV ASCII>
串口触发:第 0 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:13:22.950]# SEND HEX>
02
[2023-01-02 19:13:23.031]# RECV ASCII>
串口触发:第 2 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:13:23.202]# RECV ASCII>
2 号指令已执行:红绿蓝黄4灯全灭
[2023-01-02 19:13:23.431]# SEND HEX>
00
[2023-01-02 19:13:23.496]# RECV ASCII>
串口触发:第 0 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:13:40.117]# SEND HEX>
03
[2023-01-02 19:13:40.188]# RECV ASCII>
串口触发:第 3 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:13:40.666]# RECV ASCII>
3 号指令已执行:红绿蓝黄4灯全闪
[2023-01-02 19:13:41.163]# RECV ASCII>
3 号指令已执行:红绿蓝黄4灯全闪
[2023-01-02 19:13:41.328]# SEND HEX>
00
[2023-01-02 19:13:41.410]# RECV ASCII>
串口触发:第 0 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:14:03.962]# SEND HEX>
04
[2023-01-02 19:14:04.026]# RECV ASCII>
串口触发:第 4 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:14:04.105]# RECV ASCII>
4 号指令已执行:红色1号灯亮
[2023-01-02 19:14:04.579]# SEND HEX>
00
[2023-01-02 19:14:04.648]# RECV ASCII>
4 号指令已执行:红色1号灯亮
串口触发:第 0 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:14:26.720]# SEND HEX>
05
[2023-01-02 19:14:26.789]# RECV ASCII>
串口触发:第 5 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:14:27.040]# RECV ASCII>
5 号指令已执行:红色1号灯灭
[2023-01-02 19:14:27.300]# SEND HEX>
00
[2023-01-02 19:14:27.380]# RECV ASCII>
串口触发:第 0 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
[2023-01-02 19:14:34.921]# SEND HEX>
06
[2023-01-02 19:14:35.012]# RECV ASCII>
串口触发:第 6 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序
6 号指令已执行:红色1号灯闪
[2023-01-02 19:14:35.512]# RECV ASCII>
6 号指令已执行:红色1号灯闪
[2023-01-02 19:14:35.545]# SEND HEX>
00
[2023-01-02 19:14:35.623]# RECV ASCII>
串口触发:第 0 号指令已发送到IRM
IRM收到点灯指令:开始执行点灯程序