找回密码
 立即注册
楼主: 深山老妖

请教串口DMA发送问题

[复制链接]

32

主题

144

回帖

785

积分

高级会员

积分
785
 楼主| 发表于 2024-9-5 18:52:14 | 显示全部楼层
王*** 发表于 2024-9-5 18:49
在缓冲区内随便填东西,最后使用
DMA_UR3T_CR   = 0XC0; //启动DMA 开始发送数据
语句启动发送就好了 ...

想知道的是,如何把TX3_485_DATA[22]内部的内容放进缓冲区。

点评

你指定TX3_485_DATA的地址给dma寄存器,那么这个部分就成为缓冲区了  详情 回复 发表于 2024-9-5 18:53
回复

使用道具 举报 送花

已绑定手机
已实名认证

148

主题

4098

回帖

1万

积分

超级版主

积分
10914
发表于 2024-9-5 18:53:32 | 显示全部楼层
深山*** 发表于 2024-9-5 18:52
想知道的是,如何把TX3_485_DATA[22]内部的内容放进缓冲区。

你指定TX3_485_DATA的地址给dma寄存器,那么这个部分就成为缓冲区了
dma没有所谓的缓冲区这一个说法,你给指定啥就是啥
回复

使用道具 举报 送花

32

主题

144

回帖

785

积分

高级会员

积分
785
 楼主| 发表于 2024-9-5 18:55:06 | 显示全部楼层
王*** 发表于 2024-9-5 18:53
你指定TX3_485_DATA的地址给dma寄存器,那么这个部分就成为缓冲区了
dma没有所谓的缓冲区这一个说法,你给 ...

怎么写出来呢?

点评

DMA_UR3T_TXAH = (u8)((u16)&TX3_485_DATA >> 8); DMA_UR3T_TXAL = (u8)((u16)&TX3_485_DATA);  详情 回复 发表于 2024-9-5 18:59
回复

使用道具 举报 送花

已绑定手机
已实名认证

148

主题

4098

回帖

1万

积分

超级版主

积分
10914
发表于 2024-9-5 18:59:15 | 显示全部楼层

DMA_UR3T_TXAH = (u8)((u16)&TX3_485_DATA >> 8);
DMA_UR3T_TXAL = (u8)((u16)&TX3_485_DATA);
回复

使用道具 举报 送花

32

主题

144

回帖

785

积分

高级会员

积分
785
 楼主| 发表于 2024-9-5 19:07:29 | 显示全部楼层
王*** 发表于 2024-9-5 18:59
DMA_UR3T_TXAH = (u8)((u16)&TX3_485_DATA >> 8);
DMA_UR3T_TXAL = (u8)((u16)&TX3_485_DATA);

这样,明白了,谢谢!
回复

使用道具 举报 送花

已绑定手机

1

主题

11

回帖

57

积分

注册会员

积分
57
发表于 2026-4-15 22:27:13 | 显示全部楼层
在DAM串口初始化时DMA_UR2T_CR = 0xc0;开起自动发送,为什么就一直发送呢,在DAM中断里加入关闭发送也不行,这是没有进入中断,但串口确实在一直发数据,有谁知道吗,还有就是先关闭自动发送,比如我发一个字节,但在上电发第一次时前面有乱码,有时一个,有时几个,但你发第二次时就没有,正常,你发一个就是一个,发两个就是两个,。DMA_UR2T_CR是发一次完后自动关闭,要再次触发DMA_UR2T_CR = 0xc0;才能发送,还是要手动关闭DMA_UR2T_CR = 0x00;
回复

使用道具 举报 送花

7

主题

21

回帖

359

积分

中级会员

积分
359
发表于 2026-5-26 22:18:28 | 显示全部楼层
60526221710386.jpg
这样吧
回复

使用道具 举报 送花

已绑定手机

63

主题

2167

回帖

3537

积分

论坛元老

积分
3537
发表于 2026-5-27 08:34:56 | 显示全部楼层

理解正确
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-7 14:41 , Processed in 0.079363 second(s), 90 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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