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);
			        }
			     
				
            }
   
  }
相关推荐
国科安芯1 小时前
抗辐照MCU在卫星载荷电机控制器中的实践探索
网络·嵌入式硬件·硬件工程·智能硬件·空间计算
GenCoder2 小时前
Keil开发STM32生成hex文件/bin文件
stm32·bin文件生成·keil开发
憧憬一下2 小时前
FreeRTOS任务之深入篇
stm32·嵌入式·freertos
双古2 小时前
步进电机调试记录(先让我的步进电机转起来)
单片机·嵌入式硬件
lixzest2 小时前
STM32开发中,线程启动异常问题排查简述
stm32·嵌入式硬件
程序员JerrySUN3 小时前
全面理解 Linux 内核性能问题:分类、实战与调优策略
java·linux·运维·服务器·单片机
学习噢学个屁3 小时前
基于STM32语音识别柔光台灯
c语言·stm32·单片机·嵌入式硬件·语音识别
欢乐熊嵌入式编程6 小时前
欢乐熊大话蓝牙知识14:用 STM32 或 EFR32 实现 BLE 通信模块:从0到蓝牙,你也能搞!
stm32·单片机·嵌入式硬件
傍晚冰川6 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习
SY师弟8 小时前
51单片机基础部分——矩阵按键检测
嵌入式硬件·矩阵·51单片机