单片机stm32系列——UART协议搭配usb-ttl实现通信stm32cubeMX+keil5
·
STM32F103 有 3 个 UART 外设:USART1、USART2、USART3
起始位(1位) + 数据位(8位) + 校验位(可选) + 停止位(1或2)
UART 是由硬件外设 USART 模块生成和采样数据的,它的 TX/RX 必须连接在芯片内部固定的数字线路上。
| 功能 | 默认引脚 |
|---|---|
| TX | PA9 |
| RX | PA10 |
UART(USART)是一个全双工(Full Duplex)协议可以同时传输数据,互不影响。异步传输。
配置教程
1.打开stm32cubeMX的主页面配置uart协议通信

2.配置波特率,传输格式,最常见的是 8N1 帧格式,即
8 数据位、N = No parity不校验、1 停止位
3.点击直接生成代码

4.打开keil5会发现多了一个uart.c文件,且里面已经配置好参数

5.定义接收和发送的变量
uint8_t tx_data[10] = "hello\r\n"; // 要发送的数据
uint8_t rx_data[10]; // 接收缓冲区
6.初始化协议
MX_USART1_UART_Init();
7.发送字符函数
HAL_UART_Transmit(&huart1, tx_data, strlen((char*)tx_data), 100);
8.接收字符函数
HAL_UART_Receive(&huart1, rx_data, 1, 100);
9.写一个接收字符成功的案例代码
if (HAL_UART_Receive(&huart1, rx_data, 1, 100) == HAL_OK)
{
/* 接收到的数据第一位是否为 'a' ? */
if (rx_data[0] == 'a')
{
//执行你需要做的内容
}
/* 清空缓冲区(避免旧数据干扰) */
memset(rx_data, 0, sizeof(rx_data));
}
10.写一个发送hello的demo
uint8_t tx_data[] = "hello\r\n"; // 要发送的数据
HAL_UART_Transmit(&huart1, tx_data, strlen((char*)tx_data), 100); // 发送数据命令

谢谢大家,我会继续努力跟新教程
更多推荐
所有评论(0)