EDA365电子论坛网

标题: 【问题解答】串口收发控制LED的亮灭,代码怎么写? [打印本页]

作者: leo539    时间: 2022-5-17 00:48
标题: 【问题解答】串口收发控制LED的亮灭,代码怎么写?
本帖最后由 jacky401 于 2022-11-28 11:03 编辑

请教老师们,从QCOM发送命令“LED_ON”,则PC13所控LED点亮;  发送命令“LED_OFF”,则PC13所控LED熄灭。
这个代码应该怎么写,找不到思路
用串口发送10位字节的代码改可以吗,大概知道用HAL GPIO Writen函数点亮灯,但怎么检测判断输入的字符LED_ON和LED_OFF,检测的时候要输出打印语句吗?



作者: 芦根苏木    时间: 2022-5-17 09:06
需要打印语句的

作者: jacky401    时间: 2022-5-18 13:25
本帖最后由 jacky401 于 2022-5-18 13:30 编辑

可参考如下代码:

  1.                 printf("\r\n *** weclome to Elec-Nest! ***\r\n");
  2.                 printf("请发送命令 LED_ON 或 LED_OFF: \r\n");               

  3.                 HAL_UART_Transmit(&huart2,(uint8_t *)"32372E3036362E30",16,0xff);      //发送模拟数据
  4.                 while(__HAL_UART_GET_FLAG(&huart2,UART_FLAG_TC)!=SET);       //等待发送结束      
  5.                 printf("\r\n");         //掺入换行                                

  6.                 HAL_Delay(1000);               

  7.                 if(USART2_RX_STA&0x8000)
  8.                 {
  9.                         len = USART2_RX_STA&0x3FFF;         //得到此次接收到的数据长度                       

  10.                         printf("\r\n 你发送的命令是: \r\n");
  11.                         HAL_UART_Transmit(&huart2,(uint8_t *)USART2_RX_BUF,len,0xff);    //接收到的数据
  12.                         while(__HAL_UART_GET_FLAG(&huart2,UART_FLAG_TC)!=SET);       //等待发送结束      
  13.                         printf("\r\n");      //掺入换行      
  14.                         USART2_RX_STA=0;                        

  15.                         if(strcmp((const char*)USART2_RX_BUF, "LED_ON") == 0)
  16.                         {
  17.                                 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,  GPIO_PIN_SET);
  18.                         }
  19.                         else if(strcmp(USART2_RX_BUF, "LED_OFF") == 0)
  20.                         {
  21.                                 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,  GPIO_PIN_RESET);
  22.                         }
  23.                 }
复制代码







欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2