GD32F103RCT6/GD32F303RCT6(6.2)USART串口库函数介绍(包含DMA库函数)

 本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发

向上代码兼容GD32F450ZGT6中使用

后续项目主要在下面该专栏中发布:

https://blog.youkuaiyun.com/qq_62316532/category_12608431.html?spm=1001.2014.3001.5482

感兴趣的点个关注收藏一下吧!

电机驱动开发可以跳转:

GD32F103RCT6/GD32F303RCT6-实战项目-无刷电机驱动(1)_gd32f103rct6例程-优快云博客

BMS电源系统开发可以跳转:

暂未放链接

DCDC-双向BUCK-BOOST实战链接:

GD32实战篇-双向数控BUCK-BOOST-BUCK降压理论基础-优快云博客

GD32实战篇-双向数控BUCK-BOOST-BOOST升压理论基础-优快云博客

 向上代码兼容GD32F303RCT6中使用

本项目配套开发板:

       基于GD32F103RCT6国产GD32平台,以下教程编写基于该开发板

       图片:

a3306ca8dcba4148b32a852093fe1e25.jpeg

       原理图以及例程请联系客服获取!

注意:

本教程致力于解决所有在调试中出现的所有问题,如有未包含在的问题,请联系QQ:2049363803,有奖更新文档!

库函数介绍:

       GPIO的库函数声明都在""gd32f10x_usart.h"文件中。

       官方资料路径:GD32F10x_Firmware_Library_V2.2.4\Firmware\GD32F10x_standard_peripheral\Include\gd32f10x_usart.h

函数声明:

复位USART/UART

/* reset USART */

函数声明如下:

void usart_deinit(uint32_t usart_periph);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

返回

配置USART/UART波特率

/* configure USART baud rate value */

函数声明如下:

void usart_baudrate_set(uint32_t usart_periph, uint32_t baudval);

        参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

baudval

参数2

 具体波特率值

返回

返回



配置USART/UART校验功能(奇偶)

/* configure USART word length */

函数声明如下:

void usart_parity_config(uint32_t usart_periph, uint32_t paritycfg);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

paritycfg

参数2

USART_PM_NONE

USART_PM_ODD

USART_PM_EVEN

返回

返回

       参数2:

含义

USART_PM_NONE

无校验

USART_PM_ODD

奇校验

USART_PM_ODD

偶校验

配置USART/UART字长

/* configure USART word length */

函数声明如下:

void usart_word_length_set(uint32_t usart_periph, uint32_t wlen);

       参数1:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

wlen

参数2

USART_WL_8BIT

USART_WL_9BIT

返回

返回

       参数2:

含义

USART_WL_8BIT

8bits

USART_WL_9BIT

9bits

配置USART/UART停止位

/* configure USART stop bit length */

函数声明如下:

void usart_stop_bit_set(uint32_t usart_periph, uint32_t stblen);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

stblen

参数2

USART_STB_1BIT

USART_STB_0_5BIT

USART_STB_2BIT

USART_STB_1_5BIT

返回

返回

       参数2:

含义

USART_STB_1BIT

1bit

USART_STB_0_5BIT

0.5bit,该位对UARTx(x=3,4)无效

USART_STB_2BIT

2bit

USART_STB_1_5BIT

1.5bit,该位对UARTx(x=3,4)无效

USART正常模式通信:

 

使能USART/UART

/* enable USART */

函数声明如下:

void usart_enable(uint32_t usart_periph);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

返回

返回

失能USART/UART

/* disableUSART */

函数声明如下:

void usart_disable(uint32_t usart_periph);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

返回

返回

USART/UART发生(使能/失能)配置

/* configure USART transmitter */

函数声明如下:

void usart_transmit_config(uint32_t usart_periph, uint32_t txconfig);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

txconfig

参数2

USART_TRANSMIT_ENABLE

USART_TRANSMIT_DISABLE

返回

返回

       参数2:

含义

USART_TRANSMIT_ENABLE

使能发送

USART_TRANSMIT_DISABLE

失能发送

USART/UART接收(使能/失能)配置

/* configure USART receiver */

函数声明如下:

void usart_receive_config(uint32_t usart_periph, uint32_t rxconfig);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

txconfig

参数2

USART_TRANSMIT_ENABLE

USART_TRANSMIT_DISABLE

返回

返回

       参数2:

含义

USART_TRANSMIT_ENABLE

使能发送

USART_TRANSMIT_DISABLE

失能发送

USART/UART发送数据函数

/* USART transmit data function */

函数声明如下:

void usart_data_transmit(uint32_t usart_periph, uint16_t data);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

data

参数2

发送的数据

返回

返回

USART/UART接收数据函数

/* USART receive data function */

函数声明如下:

uint16_t usart_data_receive(uint32_t usart_periph);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

返回

返回

接收的数据

硬件流通信:



配置USART/UART硬件RTS控制流(使能/失能)

/* configure hardware flow control RTS */

函数声明如下:

void usart_hardware_flow_rts_config(uint32_t usart_periph, uint32_t rtsconfig);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

rtsconfig

参数2

USART_RTS_ENABLE

USART_RTS_DISABLE

返回

返回

接收的数据

       参数2:

含义

USART_RTS_ENABLE

使能RTS

USART_RTS_DISABLE

失能RTS

配置USART/UART硬件CTS控制流(使能/失能)

/* configure hardware flow control CTS */

函数声明如下:

void usart_hardware_flow_cts_config(uint32_t usart_periph, uint32_t ctsconfig);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

ctsconfig

参数2

USART_CTS_ENABLE

USART_CTS_DISABLE

返回

返回

接收的数据

      参数2:

含义

USART_CTS_ENABLE

使能CTS

USART_CTS_DISABLE

失能CTS

DMA通信:

配置USART DMA接收(使能/失能)

/* configure USART DMA for reception */

函数声明如下:

void usart_dma_receive_config(uint32_t usart_periph, uint8_t dmaconfig);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

dmaconfig

参数2

USART_RECEIVE_DMA_ENABLE

USART_RECEIVE_DMA_DISABLE

返回

返回

       参数2:

含义

USART_RECEIVE_DMA_ENABLE

使能DMA接收

USART_RECEIVE_DMA_DISABLE

失能DMA接收

配置USART DMA发送(使能/失能)

/* configure USART DMA for transmission */

函数声明如下:

void usart_dma_transmit_config(uint32_t usart_periph, uint8_t dmaconfig);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

dmaconfig

参数2

USART_TRANSMIT_DMA_ENABLE

USART_TRANSMIT_DMA_DISABLE

返回

返回

参数2:

含义

USART_TRANSMIT_DMA_ENABLE

使能DMA发送

USART_TRANSMIT_DMA_DISABLE

失能DMA发送

标志函数/状态函数:

获取STAT寄存器的标志

/* get flag in STAT register */

函数声明如下:

FlagStatus usart_flag_get(uint32_t usart_periph, usart_flag_enum flag);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

dmaconfig

参数2

USART_FLAG_CTSF

USART_FLAG_LBDF

USART_FLAG_TBE

USART_FLAG_TC

USART_FLAG_RBNE

USART_FLAG_IDLEF

USART_FLAG_ORERR

USART_FLAG_NERR

USART_FLAG_FERR

USART_FLAG_PERR

返回

FlagStatus

SET or RESET

       参数2:

含义

USART_FLAG_CTSF

CTS更改标志

USART_FLAG_LBDF

LIN中断检测标志

USART_FLAG_TBE

传输数据缓冲区空

USART_FLAG_TC

传输完成

USART_FLAG_RBNE

读数据缓冲区不空

USART_FLAG_IDLEF

空闲帧检测标志

USART_FLAG_ORERR

溢出错误

USART_FLAG_NERR

噪声错误标志

USART_FLAG_FERR

帧错误标志

USART_FLAG_PERR

奇偶校验错误标志

清除STAT寄存器中的标志

/*clear flag in STAT register */

函数声明如下:

void usart_flag_clear(uint32_t usart_periph, usart_flag_enum flag);

        参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

usart_flag_enum

参数2

USART_FLAG_CTSF

USART_FLAG_LBDF

USART_FLAG_TC

USART_FLAG_RBNE

返回

       参数2:

含义

USART_FLAG_CTSF

CTS更改标志

USART_FLAG_LBDF

LIN中断检测标志

USART_FLAG_TC

传输完成标志

USART_FLAG_RBNE

读数据缓冲区不空

中断功能:

USART/UART中断(使能)

/* enable USART interrupt */

函数声明如下:

void usart_interrupt_enable(uint32_t usart_periph, uint32_t interrupt);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

interrupt

参数2

USART_INT_PERR

USART_INT_TBE

USART_INT_TC

USART_INT_RBNE

USART_INT_IDLE

USART_INT_LBD

USART_INT_ERR

USART_INT_CTS

返回

返回

接收的数据

       参数2:

含义

USART_INT_PERR

奇偶校验错误中断

USART_INT_TBE

发送缓冲区空中断

USART_INT_TC

发送完成中断

USART_INT_RBNE

读数据缓冲区不空中断和溢出错误中断

USART_INT_IDLE

空闲线检测中断

USART_INT_LBD

LIN中断检测中断

USART_INT_ERR

错误中断

USART_INT_CTS

CTS中断

USART/UART中断(失能)

/* disable USART interrupt */

函数声明如下:

void usart_interrupt_disable(uint32_t usart_periph, uint32_t interrupt);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

interrupt

参数2

USART_INT_PERR

USART_INT_TBE

USART_INT_TC

USART_INT_RBNE

USART_INT_IDLE

USART_INT_LBD

USART_INT_ERR

USART_INT_CTS

返回

返回

接收的数据

       参数2:

含义

USART_INT_PERR

奇偶校验错误中断

USART_INT_TBE

发送缓冲区空中断

USART_INT_TC

发送完成中断

USART_INT_RBNE

读数据缓冲区不空中断和溢出错误中断

USART_INT_IDLE

空闲线检测中断

USART_INT_LBD

LIN中断检测中断

USART_INT_ERR

错误中断

USART_INT_CTS

CTS中断

获取USART中断标志位状态

/*get USART interrupt and flag status */

函数声明如下:

FlagStatus usart_interrupt_flag_get(uint32_t usart_periph, uint32_t int_flag);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

int_flag

参数2

USART_INT_FLAG_PERR

USART_INT_FLAG_TBE

USART_INT_FLAG_TC

USART_INT_FLAG_RBNE

USART_INT_FLAG_RBNE_ORERR

USART_INT_FLAG_IDLE

USART_INT_FLAG_LBD

USART_INT_FLAG_CTS

USART_INT_FLAG_ERR_ORERR

USART_INT_FLAG_ERR_NERR

USART_INT_FLAG_ERR_FERR

返回

       参数2:

含义

USART_INT_FLAG_PERR

校验错误中断和标志

USART_INT_FLAG_TBE

发送缓冲区空中断和标志

USART_INT_FLAG_TC

发送完成中断和标志

USART_INT_FLAG_RBNE

读数据缓冲区非空中断和标志

USART_INT_FLAG_RBNE_ORERR

读数据缓冲区非空中断和过载错误中断标志

USART_INT_FLAG_IDLE

空闲线检测中断和标志

USART_INT_FLAG_LBD

LIN断开检测中断和标志

USART_INT_FLAG_CTS

CTS中断和标志

USART_INT_FLAG_ERR_ORERR

错误中断和过载错误

USART_INT_FLAG_ERR_NERR

错误中断和噪声错误标志

USART_INT_FLAG_ERR_FERR

错误中断和镇错误标志

清楚USART中断标志位状态

/*clear interrupt flag in STAT register*/

函数声明如下:

void usart_interrupt_flag_clear(uint32_t usart_periph, uint32_t int_flag);

       参数:

usart_periph

参数1

USARTx(x=0,1,2)/UARTx(x=3,4)

int_flag

参数2

USART_INT_FLAG_PERR

USART_INT_FLAG_TBE

USART_INT_FLAG_TC

USART_INT_FLAG_RBNE

USART_INT_FLAG_RBNE_ORERR

USART_INT_FLAG_IDLE

USART_INT_FLAG_LBD

USART_INT_FLAG_CTS

USART_INT_FLAG_ERR_ORERR

USART_INT_FLAG_ERR_NERR

USART_INT_FLAG_ERR_FERR

返回

群号:621154399

有问题欢迎大家加入我们一起交流,这个群是开源性技术交流群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不及你的温柔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值