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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版