找回密码
 立即注册
查看: 138|回复: 5

求助帖:STC32G 串口2DMA的发送问题 | 已正常

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2026-05-11 12:21:50

1

主题

2

回帖

11

积分

新手上路

积分
11
发表于 2026-5-9 12:16:49 | 显示全部楼层 |阅读模式

参考官网STC32G-DEMO-CODE-V9.6\63-DMA-UART串口与存储器数据自动收发\串口2使用DMA中断模式与电脑收发测试的例程做了相关测试

单片机型号:STC32G12K128

软件协议:V4.0:7.4.6U

串口2全双工中断方式收发通讯程序,通过PC向MCU发送数据, MCU将收到的数据自动存入DMA空间,当DMA空间存满设置大小的内容后,通过串口2的DMA自动发送功能把存储空间的数据原样返回.

此功能实现测试正常,测试图片如下:

111.png

222.png

进一步修改程序,串口2DMA不是原样输出到PC,而是输出不同长度不同内容到PC。当PC向MCU发送数据, MCU将收到的数据自动存入DMA空间地址A,当DMA空间存满设置大小的内容后,通过串口2的DMA自动发送功能把另一DMA空间地址B的数据返回,这个测试就出错了,我发送的内容是A0 A1 A2 A3 A4,希望返回给PC的内容是00 01 02 03 04 05,但未能如愿,代码及测试结果如图所示:

333.png

444.png

请教各位大侠,我的代码实现问题出现在哪儿,我应该怎么修改才能实现PC给串口2DMA发送一个内容,串口2DMA回复不同长度不同内容给PC?

代码见附件:upload 附件:串口2使用DMA中断模式与电脑收发测试.7z

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:190
  • 最近打卡:2026-07-03 17:15:08

51

主题

1365

回帖

3622

积分

超级版主

积分
3622
发表于 2026-5-9 14:08:02 | 显示全部楼层
参考帖子:
https://www.stcaimcu.com/forum.p ... ptid=4675&pid=31660
STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:190
  • 最近打卡:2026-07-03 17:15:08

51

主题

1365

回帖

3622

积分

超级版主

积分
3622
发表于 2026-5-9 14:09:50 | 显示全部楼层
截图202605091408246955.jpg

关于DMA_UR2R_AMT 寄存器用法
STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2026-05-11 12:21:50

1

主题

2

回帖

11

积分

新手上路

积分
11
发表于 2026-5-9 14:23:29 | 显示全部楼层
AI-32*** 发表于 2026-5-9 14:08
参考帖子:
https://www.stcaimcu.com/forum.p ... ptid=4675&pid=31660

您好,这个帖子的链接打不开呢。现在串口2接收DMA没问题,发送DMA指向不同于DMA_UR2R_RXA的其他地址没调通呢,传输字节数也是对的,只是传输的内容不对。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:586
  • 最近打卡:2026-07-04 12:34:03
已绑定手机

112

主题

4958

回帖

1万

积分

荣誉版主

无情的代码机器

积分
10758
发表于 2026-5-9 14:23:54 | 显示全部楼层

要用xdata
截图202605091423445487.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2026-05-11 12:21:50

1

主题

2

回帖

11

积分

新手上路

积分
11
发表于 2026-5-9 14:48:04 | 显示全部楼层

好的 谢谢。我昨晚改程序的时候不小心删掉了,数组用xdata声明时,还修改了CKCON=1;
刚刚恢复了xdata声明,结果正常了,再次感谢!


PS:强调一下,DMA_UR2R_RXA和DMA_UR2T_TXA指向的数组都必须是xdata声明,void UART2_DMA_Interrupt(void) interrupt 13 也要做好响应的处理,添加isr.asm文件,有一个没设置好,都会出现传输错误。
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-5 09:48 , Processed in 0.080811 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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