CH376S用 SPI DMA 方式读写U盘,在 stm32f103 和 stm32f407 上移植成功。

        一、开始测试时遇到的问题

        刚开始的时候,求快,没仔细看文档,使用了模拟的spi和32自带spi方式直接上去调试都没有成功,没有反应,写0x06取反命令,再写入数据,一直返回高电平。板子上的灯时亮时灭的,还怀疑是不是板子有问题。

        后来仔细看了文档,发现板子刚买来的时候,Tx引脚是通过跳线帽和GND接在了一起的,这是不正确的,应该去掉跳线帽。

       

        二、STM32F407 SPI1/SPI2 DMA 方式读写 CH376S,代码我已经上传到下面链接:

        https://download.csdn.net/download/weixin_41565755/10893974

        内含SPI1和SPI2两个版本的代码,包括一个简单的说明.txt文件。这两个代码的版本读写是成功的,速度不是太快,但是优化后还是可以提高的。

 

         三、SPI写u盘操作,底层驱动代码大致流程:     

         1、片选     

         2、写命令     

         3、写数据(此步用DMA方式)     

         4、写的同时读数据(无用)     

         5、禁止片选    

         在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要cpu的参与。  

 

         四、部分测试结果如下:  

         usb模块上的SPI可以配置到24M,但是在F407上实测84/4=21M出错。    

         可以将SPI设置为 84/8=10.5M 的频率,通过DMA传输测试,330KB用了7-8s时间。    

         传输数据分割成大数据块传输利于节省时间,分割成小数据块传输非常占用时间。

         22字节*15000次,用了大概50s;220字节*1500次,用了7-8s。如果再增大数据块,注意最大输入问题。忘了接口输入是u8类型还是u16了。应该是u8类型,数据块不能超过255字节。

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值