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);
			        }
			     
				
            }
   
  }
相关推荐
yuezhilangniao39 分钟前
信创问题:从CPU到外设的统一- 拥抱 RISC-V
嵌入式硬件·risc-v
逼子格5 小时前
初入职场亦深耕创作:我的2025硬件工程师成长与分享之旅
嵌入式硬件·嵌入式·硬件工程师·硬件·博客之星·硬件工程师成长之路·硬件学习
v先v关v住v获v取5 小时前
番茄收获机切割与分离装置结构设计cad5张 +三维图+设计说明书
科技·单片机·51单片机
Zeku5 小时前
20251228 - Linux 驱动文件 (.ko) 深度解析笔记
stm32·freertos·linux驱动开发·linux应用开发
￴ㅤ￴￴ㅤ9527超级帅6 小时前
4、stm32异常与中断
stm32·单片机·嵌入式硬件
BreezeJuvenile8 小时前
通用定时器_测量PWM方波的周期和占空比案例
stm32·单片机·学习·通用定时器·pwm输入·测量占空比
进阶的猪8 小时前
stm32f407 RCC时钟配置
stm32·单片机·嵌入式硬件
ArrebolJiuZhou8 小时前
02arm指令集(一)——LDR,MOV,STR的使用
linux·网络·单片机
小刘爱玩单片机9 小时前
【stm32简单外设篇】- 三色LED
c语言·stm32·单片机·嵌入式硬件
d111111111d9 小时前
STM32平衡车测试,定时中断读取速度
笔记·stm32·单片机·嵌入式硬件·学习·模块测试