打印
[STM32F4]

STM32F407 USB CDC

[复制链接]
3164|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32 USB CDC 向上位机发送数据,实际上向APP_Rx_Buffer[APP_RX_DATA_SIZE]写入缓冲数据,然后上位机周期性来查询然后device cdc驱动发buffer数据发送host。
可是一副320*240RGB图像就有150K大小,肯定不能定义这么大的数组啊,或者我分多批次的发送,但是上位机那岂不是的分多帧才能接受完
沙发
husthuangyuan|  楼主 | 2016-1-24 16:13 | 只看该作者
或者说usb做数据buffer可不可以把地址分配在片外RAM上,像片内RAM一样操作对速度没有什么影响?

使用特权

评论回复
板凳
玄德| | 2016-1-24 22:00 | 只看该作者

1、APP_Rx_Buffer自有一套管理机制。
     看懂了就可以自由修改。

2、完全可以换换地方。
    如果用到DMA,要注意:有个空间是DMA盲区。


使用特权

评论回复
地板
husthuangyuan|  楼主 | 2016-1-25 09:10 | 只看该作者
玄德 发表于 2016-1-24 22:00
1、APP_Rx_Buffer自有一套管理机制。
     看懂了就可以自由修改。

我在后面加了 __attribute__((at(0X68000000)))  把数组定义在外部SRAM里下位机没有改什么,但是上位机把数据还原成图像,就好象错位了,有一部分图像和下部分图像移动了一样,不知道是什么原因?
用串口发送的时候,能够正常显示。用USB CDC却出现这个问题。

QQ图片20160124194015.png (101.08 KB )

QQ图片20160124194015.png

使用特权

评论回复
5
玄德| | 2016-1-25 09:14 | 只看该作者
husthuangyuan 发表于 2016-1-25 09:10
我在后面加了 __attribute__((at(0X68000000)))  把数组定义在外部SRAM里下位机没有改什么,但是上位机把 ...


有图像显示,说明USB发送成功了,
错误很可能是程序的管理问题。

可以这样测试一下:
先别发图像,0,1,2,。。。255大数据块重复发,上位机按此规律进行判断。


使用特权

评论回复
6
wahahaheihei| | 2016-1-25 13:19 | 只看该作者
USB CDC这个没用过,没搞这么复杂的过,跟楼主学学看。

使用特权

评论回复
7
auv555| | 2016-1-25 14:16 | 只看该作者
晕 。。没懂。。学习下吧

使用特权

评论回复
8
zls666| | 2016-4-11 22:18 | 只看该作者
玄德 发表于 2016-1-24 22:00
1、APP_Rx_Buffer自有一套管理机制。
     看懂了就可以自由修改。

是不是在高速的情况下才会用到APP_Rx_Buffer?全速模式呢?

使用特权

评论回复
9
玄德| | 2016-4-11 23:24 | 只看该作者
zls666 发表于 2016-4-11 22:18
是不是在高速的情况下才会用到APP_Rx_Buffer?全速模式呢?


我用的是FS模式,不是HS。HS关于Buffer的事,不太清楚。
HS麻烦,要外接PHY芯片。



使用特权

评论回复
10
mmll_tech| | 2016-8-5 22:54 | 只看该作者
husthuangyuan 发表于 2016-1-25 09:10
我在后面加了 __attribute__((at(0X68000000)))  把数组定义在外部SRAM里下位机没有改什么,但是上位机把 ...

图像错位可能是数据掉包导致。

我在发送大数据时有遇到这种情况。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

1

粉丝