前言
本期主要讲述串口UART
1.如何配置
2.printf()重定向
3.基本收发功能
4.配合数据包实现接收整型数据(自认为比较好用)
5.DMA收发以及DMA实现数据包算法
基本串口收发
STM32Cubemx配置
我选择的是串口1,一般都是PA9和10
波特率115200,用得最多
使能串口中断
模式设置没有太高要求
keil代码编写
加上两个头文件,因为后面会用到标准库和字符串库的函数
#include <stdio.h>
#include <string.h>
创建数据缓冲区
char ss[100];
这个实现基本功能,发送什么就输出什么,每5个字符输出一次
第一个参数是串口结构体句柄
第二个是收发内容,也就是数据缓冲区
第三个是数据长度,发是发多少个,收是收多少个后就可以提取缓冲区数据
第四个是超时时间,多长时间后就不发送或者接收
HAL_UART_Receive(&huart1, (uint8_t *)ss,5, 0xffff);
HAL_UART_Transmit(&huart1, (uint8_t *)ss,strlen(ss), 0xffff);
实现功能
这种方式是CPU不断检测,轮循检测,很难应对多种情况
printf()函数重定向
1.把这个打开,勾选上
2.在uart.c头文件里面加上
#include <stdio.h>
#include <string.h>