目前共有3篇帖子。 字体大小:较小 - 100% (默认)▼  内容转换:港澳繁體▼
 
点击 回复
410 2
STM32 USB傳輸數據所使用的寄存器
一派掌门 二十级
1楼 发表于:2024-4-29 19:55

STM32F103裏面的從USB,收發數據靠的是讀寫512位元組的PMA(Packet Memory Area),其地址為0x40006000~0x400063fd。第0個字節是0x40006000,第1個字節是0x40006001;第2個字節是0x40006004,第3個字節是0x40006005;第4個字節是0x40006008,第5個字節是0x40006009……以此類推,直到第511個字節0x400063fd。

 

而STM32F107裏面的USB OTG,收發數據靠的是1.25KB的DFIFO。定義:

#define USB_OTG_FS_PERIPH_BASE               0x50000000UL
#define USB_OTG_FIFO_BASE                    0x00001000UL
#define USB_OTG_FS_DFIFO ((USB_OTG_DFIFOTypeDef *)(USB_OTG_FS_PERIPH_BASE + USB_OTG_FIFO_BASE))
 
typedef struct
{
  uint32_t DFIFO;
  uint32_t RESERVED[1023];
} USB_OTG_DFIFOTypeDef;

則接收數據始終是讀取USB_OTG_FS_DFIFO->DFIFO寄存器(相當於USB_OTG_FS_DFIFO[0].DFIFO),而發送數據是寫USB_OTG_FS_DFIFO[端點號].DFIFO寄存器。

一派掌门 二十级
2楼 发表于:2024-4-29 19:56

STM32F107VC單片機下運行STM32CubeMX生成的USB_OTG Mass Storage工程,無法識別USB設備的解決辦法:https://blog.csdn.net/ZLK1214/article/details/106393457

 
一派掌门 二十级
3楼 发表于:2024-4-29 19:58
STM32 USB_OTG裏面的DFIFO寄存器的分佈確實很複雜。
 

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:410 回复数:2
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2024-4-29 19:58
 
©2010-2025 Purasbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。