STM32智能家居7天小项目(2)串口的使用

简介: STM32智能家居7天小项目(2)串口的使用

前言

今天是学习百问网7天智能家居项目的第二天,本篇文章将带大家了解常用的字符串函数串口的一些使用方法。

一、常用的字符串函数

strcat字符串拼接函数

strcat函数是将一段字符串拼接到目的字符串上面。

下面的例子先打印hello,再打印helloworld。

#include<stdio.h>
#include<string.h>
int main(void)
{
  char buf[255] = { 0 };
  strcat_s(buf,sizeof(buf) ,"hello");
  printf("%s\n", buf);
  strcat_s(buf, sizeof(buf), "world");
  printf("%s\n", buf);
  return 0;
}

memset字符串赋值函数

memset函数可以将字符串数组进行整体赋值。

下面例子先打印hello然后再将字符串数组全部赋值为0。

  char buf[255] = "hello world";
  printf("%s\n", buf);
  memset(buf, 0, sizeof(buf));
  printf("%s\n", buf);

strstr字符串判断函数

strstr函数可以用来判断字符串是否存在某一字符串,存在返回1,不存在返回0。

  char buf[255] = "hello world";
  if (strstr(buf, "hello"))
  {
    printf("yes");
  }
  else
  {
    printf("NO");
  }

二、串口的使用

1.cubeMX的配置

设置串口波特率

image.png

开启串口中断

image.png

2.代码解析

将串口发送和接收函数封装好,方便我们使用。

static uint8_t rx_len;
static uint8_t rx_data;
static uint8_t usart_rx_buf[200];
// 串口3启动接收
void USART3_StartRx(void)
{
  HAL_UART_Receive_IT(&huart3, (uint8_t*)&rx_data, 1);
}
// 串口3中断回调函数(保存每次接收的数据,并启动下一次接收)
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
  usart_rx_buf[rx_len%200] = rx_data;
  rx_len++;
  HAL_UART_Receive_IT(&huart3, (uint8_t*)&rx_data, 1);
}
// 串口3接收的数据
uint16_t USART3_Receive(uint8_t *pdata)
{
  memcpy(pdata, (uint8_t*)usart_rx_buf, rx_len);
  return rx_len;
}
// 串口3发送数据
void USART3_Transmit(uint8_t *pData, uint16_t Size, uint32_t Timeout)
{
  HAL_UART_Transmit(&huart3, pData, Size, Timeout);
}
// 清理串口3接收的数据
void USART3_ClearBuf(void)
{
  rx_len = 0;
  memset((uint8_t*)usart_rx_buf, 0, 200);//将数据都清除为0
}

总结

串口通信在平时项目开发过程中还是会经常使用到的,希望大家能够好好学习一下。

相关文章
|
8月前
|
传感器 监控 安全
基于STM32的智能家居安防系统设计与实现
基于STM32的智能家居安防系统设计与实现
695 1
|
8月前
|
物联网 数据处理 智能硬件
基于STM32的智能家居控制系统设计与实现
基于STM32的智能家居控制系统设计与实现
704 0
|
6月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
893 0
|
6月前
STM32CubeMX 串口收发一帧数据
STM32CubeMX 串口收发一帧数据
76 9
|
6月前
|
芯片
STM32CubeMX 串口数据收发
STM32CubeMX 串口数据收发
197 2
|
8月前
|
传感器
基于STM32与FreeRTOS的四轴机械臂项目-3
基于STM32与FreeRTOS的四轴机械臂项目
基于STM32与FreeRTOS的四轴机械臂项目-3
|
8月前
|
传感器
基于STM32与FreeRTOS的四轴机械臂项目-2
基于STM32与FreeRTOS的四轴机械臂项目
基于STM32与FreeRTOS的四轴机械臂项目-2
|
6月前
|
监控
stm32f407探索者开发板(十八)——串口通信实验讲解(USART_RX_STA流程图详解)
stm32f407探索者开发板(十八)——串口通信实验讲解(USART_RX_STA流程图详解)
497 0
|
7月前
|
传感器 数据采集 人工智能
【STM32+k210项目】基于AI技术智能语音台灯的设计(完整工程资料源码)
【STM32+k210项目】基于AI技术智能语音台灯的设计(完整工程资料源码)
337 1