导图社区 GD32串口(UART)知识
这是一篇关于GD32串口(UART)知识的思维导图,主要内容有BLOCKING 、INTERRUPT、UART DMA。
CANopen是一个基于CAN串行总线系统和CAL(CAN应用层)的高层协议。 CANopen的核心概念是设备对象字典(OD: ObjectDictionary),CANopen通讯通过对象字典(OD)能够访问驱动器的所有参数
CANopen是一种架构在CAN控制局域网上的高层软件通信协议,包括通信子协议及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线协议
该文档为嵌入式遥测终端机嵌入式软件的架构文档,可以用来指导遥测终端机的嵌入式软件的设计和代码的编写。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
UART
BLOCKING
rcu_periph_clock_enable(GPIOx)
作用: 使能GPIO端口 时钟
rcu_periph_clock_enable(UART)
作用:使能UART时钟
gpio_init
作用: 绑定指定IO位UART
TX
IO模式:GPIO_MODE_AF_PP
RX
IO模式:GPIO_MODE_IN_FLOATING
USART配置
usart_deinit
复位usart
usart_baudrate_set
设置波特率
usart_receive_config
使能串口接受
usart_transmit_config
使能串口发送
usart_enable
使能串口
INTERRUPT
nvic_irq_enable
作用:配置USART中断入口和优先级
常规配置
usart_interrupt_enable
作用:使能接受和发送中断
参数
USARTx(x=0,1,2)/UARTx(x=3,4)
中断类型
USART_INT_PERR
奇偶校验错误中断
USART_INT_TBE
发射机缓冲区空中断
USART_INT_TC
传输完成中断
USART_INT_RBNE
读取数据缓冲区不空中断和溢出错误中断
USART_INT_IDLE
IDLE线检测到中断
USART_INT_LBD
LIN中断检测到中断
USART_INT_ERR
出错中断
USART_INT_CTS
CTS中断
USART_INT_RT
中断启用位的接收超时事件
USART_INT_EB
中断使能块事件的结束位
usart_interrupt_flag_get
作用:获取USART中断和标志状态
标志类型
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
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_INT_FLAG_EB
中断使能块事件结束位和标志
USART_INT_FLAG_RT
中断启用位接收超时事件和标志
UART DMA
DMA结构体
原始结构体
/* DMA initialize struct */ typedef struct { uint32_t periph_addr; /*!< peripheral base address */ uint32_t periph_width; /*!< transfer data size of peripheral */ uint32_t memory_addr; /*!< memory base address */ uint32_t memory_width; /*!< transfer data size of memory */ uint32_t number; /*!< channel transfer number */ uint32_t priority; /*!< channel priority level */ uint8_t periph_inc; /*!< peripheral increasing mode */ uint8_t memory_inc; /*!< memory increasing mode */ uint8_t direction; /*!< channel data transfer direction */ } dma_parameter_struct;
periph_addr
外设的基地址
periph_width
外设传输数据大小
memory_addr
内存地址
memory_width
传输内存的数据大小
number
信道传输数
priority
通道优先级
periph_inc
外设增加模式
memory_inc
内存增加模式
direction
信道数据传输方向
配置DMA步骤
使能DMA时钟
rcu_periph_clock_enable(RCU_DMA0)
复位DMA配置
dma_deinit
初始化DMA配置
dma_init
设置DMA循环模式
打开
dma_circulation_enable
关闭
dma_circulation_disable
设置内存到内存模式
dma_memory_to_memory_enable
dma_memory_to_memory_disable
DMA_Init
开启对应DMA通道
dma_channel_enable(DMA0, DMA_CH3);
配置外设DMA传输
usart_dma_transmit_config
usart_dma_receive_config
检查DMA标志
dma_flag_get
标志种类
DMA_FLAG_G
DMA_FLAG_FTF
DMA_FLAG_HTF
DMA_FLAG_ERR