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

阅读: 评论:0

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

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

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

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

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

       

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

       

        内含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字节。

 

 

本文发布于:2024-01-31 11:37:39,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170667226028242.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:方式   SPI   CH376S   DMA
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23