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