找回密码
 注册
关于网站域名变更的通知
查看: 189|回复: 0
打印 上一主题 下一主题

4组串口UART使用DMA收发 @32G系列,易用,高效,稳定 !

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2025-11-14 16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 岁月如歌21 于 2025-11-14 16:44 编辑 $ r3 D' O0 S" ^5 Y9 \
1 W" ~2 x4 H6 z* z# {- K: Y1 Z* U/ d
4组串口UART使用DMA收发, 精品实战代码, 易用,高效,稳定 !" |* Y# Q: Y& t+ L
源自实际系统 @STC32G12K128 系列
( }- r$ c6 @7 b' w4 [0 p8 t非常容易使用, 将C文件添加至项目, 初始化后, 即可用.
) f1 Q( d7 e( _- J3个函数, 包含一切UART串口操作, 适用90%以上场景 !, e' C9 k; u- K0 e4 z
===从此告别串口驱动代码开发.
/ v1 e6 {1 B& ]6 h- ~void UART1_Init(u32 btl);               //初始化串口            2 K8 D+ D1 A& t4 M1 z
u8 UART1_Send(void *pt, u16 Size);      //发送数据
- }4 w$ Q" r( W8 H( x4 @u16 UART1_Receive(u8 *buf, u16 Size);   //接收数据: @: T6 z; Z" [8 ?( ^0 b% _
main() 函数演示 4个串口同时使用 DMA 收发数据, 收到数据后原路返回, 不限数据长度, 持续收发.
8 J. f8 H7 ?. o/ Y) Y: |# o$ F8 \4 b# X6 Y( h( a6 F
主要收发函数使用说明:! @. z: C4 W& y; _/ _2 {' N8 C
/**- b% m2 V8 |! p
  * 原型: u8 UART1_Send( void *pt, u16 Size);- @& _5 {3 K0 _# t' C& z1 n
  * @功能  串口发送数据. 写数据至发送缓冲区(循环池), 写完立即返回, 由DMA管理数据流向串口,$ ?9 v9 b6 A# a) K& t" ?4 ^
                用户无须关心. 只要缓冲区有足够的空间, 可持续写入数据! l  V7 q7 M$ l
  * @参数  pt: 发送数据指针9 g' i! ^3 S! H" u7 ?2 K
  * @参数  Size: 发送数量(字节)
) d# f- D/ {% }  * @返回值 当缓冲区没有足够的空间装入数据时返回1, 其它时候返回0' e1 I& U6 J& K
  */  $ q# @; \# C: j* s
- f" _$ m# c; X& {* t
/**, m8 _7 q$ {2 X0 [; Y# c
  * 原型: u16 UART1_Receive(u8 *buf, u16 Size);
, M/ s6 u" Z( F$ U7 ~; u  * @功能  读串口数据, 从缓冲区内读取数据. (DMA接收数据后存放至接收缓冲区,, m9 ?$ s9 N1 R% @0 k" ^5 X& i
        应用代码必须定时查询读取, 否则循环池发生数据覆盖, 会丢失一部分数据, 没有提示, 但不影响后续收发)( ?' g! N/ O- h5 `8 N5 l8 k
  * @参数  buf: 接收数据指针
* c+ i# L' e& O* B0 D# \+ T  * @参数  Size: Size期盼接收的字节数( ^1 [; X# O% P7 c4 l# v' k
  * @返回值 实际接收字节数. 缓冲区空时(没有数据可读)返回0, 返回值<Size说明本次读取完成后,缓冲区已空.
- D- G% \: ~: ~5 Z  j. |' Y        返回值==Size说明本次读取完成后,缓冲区仍有数据可读. 任何时候,返回值不会大于Size% V& q* e: J, X. n
  */

4串口 DMA 实例代码 STC32G.rar

101.49 KB, 下载次数: 0, 下载积分: 威望 -5

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-26 02:44 , Processed in 0.156250 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表