前言
今天是学习百问网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的配置
设置串口波特率
开启串口中断
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 }
总结
串口通信在平时项目开发过程中还是会经常使用到的,希望大家能够好好学习一下。