单片机学习小组
直播中

毛头大小子

12年用户 610经验值
私信 关注

基于stm32f103zet6的串口是怎样使用DMA发送数据的

基于STM32f103zet6的串口是怎样使用DMA发送数据的?

回帖(1)

张林

2022-2-18 15:22:35
stm32f10x串口通讯


USART_Rx_Sbuffer二维数组 -> 串口接收缓存区

一共3行 Rx_SbufferSize 列 ,Rx_SbufferSize由宏定义。
0,1,2行分别是串口1,2,3的接收缓存,由串口中断将接收到的数据存入对应的缓存区中。
可以使用Usart_Read()函数来读取缓存区的内容,(返回的是对应缓存区的首地址),**特别注意! 每行第1个元素表示的式该行接收到的数据个数,并不是接收到的数据!**读取到内容(或帧)后,可以使用USART_Push()和USART_Clear()来清除缓存区。
USART_Tx_Sbuffer二维数组 -> 串口DMA发送缓存区

一共3行 Tx_SbufferSize 列,Tx_SbufferSize 由宏定义。
0,1,2行是表示串口1,2,3的发送缓存,由串口发送函数Usart_Send()将要发送的数据存入对应的缓存区中。特别注意! 每行第1个元素表示的式该行要发送的数据的个数,并不是要发送的数据,同时具有DMA在忙标志位的作用,在忙标志由DMA中断清除。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分