stm32 hal 串口发指令控制

通过利用比较字符串的方法来识别串口输入指令strncmp,这个是比较字符串函数,

使用方法

int strncmp(const char *str1, const char *str2, size_t n)

里面的参数

  • str1-- 要进行比较的第一个字符串。//这个一般是串口传入的字符串

  • str2-- 要进行比较的第二个字符串。//自己定义的字符串

  • n-- 要比较的最大字符数。

返回值

该函数返回值如下:

  • 如果返回值 < 0,则表示 str1 小于 str2。

  • 如果返回值 > 0,则表示 str2 小于 str1。

  • 如果返回值 = 0,则表示 str1 等于 str2。

我们下面的代码就是利用了相等==的关系

如果输入的指令和我们设置的一样就执行相应的函数语句

复制代码
while (1)
{	
		
    if(HAL_UART_Receive(&huart2, (uint8_t*)rxData,4, 100) == HAL_OK) 
        {
          if(strncmp(rxData, "LED_ON",5)==0)//比较字符串,
              {
                LED_ON();开灯
				HAL_UART_Transmit(&huart2, "Received LED_ON command\r\n",strlen("Received LED_ON command\r\n"), 100); 
              }
               else if(strncmp(rxData,"LED_OFF",7)==0)
                  {
                    LED_OFF();//关灯
				HAL_UART_Transmit(&huart2, "Received LED_OFF command\r\n",strlen("Received LED_ON command\r\n"), 100);
				
                  }
			    else if(strncmp(rxData,"LED_BLINK",9)==0)
			       {
				     LED_BLINK();//闪烁
				     HAL_UART_Transmit(&huart2, "Received LED_BLINK command\r\n", strlen("Received LED_BLINK command\r\n"), 100);
			        }
			     
				
            }
   
  }
相关推荐
honey ball4 小时前
EMC内参二(1-33页)学习【技术进阶】
开发语言·单片机·嵌入式硬件·学习
大牛攻城狮4 小时前
使用stm32cubeide stm32f407 lan8720a freertos lwip 实现udp client网络数据转串口数据过程详解
stm32·freertos·lwip·stm32cubeide·网络转串口·lan8720a·udp服务端客户端
触角010100014 小时前
STM32看门狗应用实战:独立看门狗与窗口看门狗深度解析(下) | 零基础入门STM32第九十五步
驱动开发·stm32·单片机·嵌入式硬件·物联网
USER_A0015 小时前
【STM32】综合练习——智能风扇系统
stm32·单片机·嵌入式硬件·智能风扇
狄加山6755 小时前
STM32 基础2
stm32·单片机·嵌入式硬件
爱喝西北风的东北风7 小时前
状态机思想编程
单片机·嵌入式硬件·fpga开发
PegasusYu7 小时前
Electron使用WebAssembly实现CRC-32 STM32校验
stm32·electron·nodejs·wasm·webassembly·crc32·crc-32
柒月玖.8 小时前
基于AT89C51单片机的加减乘除液晶计算机设计
单片机·嵌入式硬件
剑鞘的流苏8 小时前
DC-DC电路和LDO电路
单片机·嵌入式硬件
CDialog11 小时前
qemu仿真调试esp32,以及安装版和vscode版配置区别
单片机·嵌入式硬件