打印
[资料分享与下载]

KSDK1.2库SPI的CS引脚I/O实现

[复制链接]
867|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DreamofOven|  楼主 | 2015-10-26 17:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、问题描述:
这个问题来源于使用YL-KL26Z学习SPI接口的问题。
YL-KL26Z的SPI接W25Q32的电路如下:

可以看出CS引脚使用的时PTB0,而非SPI模块的PTC4。
那如何使用KSDK库编程,使用I/O口模拟CS引脚呢?

二、解决办法:
1、在使用KSDK库中的SPI功能的driver库函数时,没有发现配置SPI的CS引脚使用模拟I/O引脚来代替。
经分析,发现driver库使用的时SPI模块的CS0,自动片选模式:

2、这就是说,KSDK的driver库本身不支持CS的I/O模拟来实现,需要自己从新写SPI驱动函数。
3、本人比较懒,还是在KSDK库的基础上修改一下吧。站在巨人的肩上
4、首先,在pin_mux.c中去掉cs的引脚配置:

5、在gpio_pins.h中添加CS的说明:

6、在gpio_pins.c中添加CS的结构体变量:

7、在board.h中宏定义CS的操作:

相关下载

相关帖子

沙发
DreamofOven|  楼主 | 2015-10-26 17:18 | 只看该作者


8、在driver库中的初始化函数部分设置如下:

9、在spi传输部分屏蔽下面2行,不屏蔽时序上会有问题,不能正确读写:

10、重新编译库
11、主程序写个测试代码:

12、修改后调试通过,效果就不上图了。

三、感想与收获:
1、这个修改当时还是花了不少时间。
2、KSDK库还是有些不太完善的地方,不能解决大家的所有问题,下一步有时间还是要深入学学HAL层的内容。

使用特权

评论回复
板凳
Tennasi| | 2015-10-26 20:46 | 只看该作者
KSDK库还是有些不太完善的地方,谢谢楼主的分享

使用特权

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

本版积分规则

27

主题

178

帖子

0

粉丝