Zen的小站

小舟从此逝,江海寄余生

0%

【HAL库】串口通信

文章概览

cubemx配置

点开异步通信,对应引脚会亮起,RXDTXD

image-20221223145433743

打印重定义

  1. usart.h对应位置添加#include<stdio.h>

    1
    2
    3
    /* USER CODE BEGIN Includes */
    #include <stdio.h>
    /* USER CODE END Includes */
  2. usart.c对应位置添加重定义

    1
    2
    3
    4
    5
    6
    7
    8
    9
    /* USER CODE BEGIN 0 */

    int fputc(int ch, FILE *f)
    {
    HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
    return ch;
    }

    /* USER CODE END 0 */

之后printf()就是在串口输出

千万别忘了开启 use MicroLIB

image-20221223145322788

没开启这个,串口无反应

接收

HAL库接收函数

1
// 用户定义

串口接收不定长有很多种实现思路,比如DMA或定时器等,一下简单介绍一下定时器方法。

定时器方法

115200 波特率对应 5ms 间隔,最多一次可以传输 20 字节。

  • 思路

    从接收到信号开始,一段时间内一直接收,之后关闭,等待下一次接收到新信号。等待时间用定时器精确控制。

  • 代码

    http://t.csdn.cn/z7yF0

    其中 REC_LENGTH 一定要设置为 1

多想多做,发篇一作

-------------本文结束感谢您的阅读-------------
// 在最后添加