你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32的USB是否有DMA支持?

[复制链接]
HGR-61937 提问时间:2008-11-19 17:30 /
楼主:

我想做一个USB音频设备,参考了STM32 USBLib demo里的AUDIOSPEAKER项目,在这例子项目里发现USB和I2S都没有使用DMA,于是看了一个文档,没有找到DMA到USB的支持,但I2S是有DMA支持的。我想确定几个事情, 1. STM32是否没有USB的DMA支持?
2. 不管USB是否有DMA支持,假设从USB接收到的音频数据都放在unsigned char rxPCM[4096],我想I2S的DMA从这内存中取数据,见到STM32的DMA有circle_mode,而且说DMA每传输半个字节和一个字节都会产生中断,想在这DMA传输中断时更新rxPCM,但没有发现DMA相关寄存器有指示当前读到源地址中第几个字节的寄存器,如果不能读出当前读到源地址中第几个字节这个信息,也就无法知道应该更新rxPCM的什么位置,也就体现不到circle_mode有什么作用?

--------------------------------------------------------------------------------------------------------
1楼:
DMA支持USB的数据传输

--------------------------------------------------------------------------------------------------------
2楼:
usecool, 这位朋友是在什么地方见到说USB有DMA支持?

--------------------------------------------------------------------------------------------------------
3楼:
DMA不是有个记录剩余传输数量的寄存器DMA_CNDTR吗?用这个就可以知道读到源地址哪个位置了。DMA的中断好像是传输完总数量的一半和完全传输完才产生的吧,不是每半字节和每个字节产生

--------------------------------------------------------------------------------------------------------
4楼:
sonicll, 你说得对,我看错了。
对于circular_mode,如果在传输一半中断时通过MCU更新这一半数据的话,你认为会有问题吗?难道又需要用另一个DMA来更新这一半的数据?

--------------------------------------------------------------------------------------------------------
5楼:
4#: 可以更新已经传输的部分的数据,因为对于DMA来说,那些数据已经是使用过可以废弃的部分了,没有传输的部分也可以更新。
DMA的作用是传输数据,而不验证数据。
收藏 评论0 发布时间:2008-11-19 17:30

举报

0个回答

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版