基于KL25例程SPI通讯收发不等长的问题

2020-02-19 21:06发布

基于KL系列SPI主机模式和外设通讯,采用PE生成的工程底层库,遇到个问题,期待解答。

参考KL25的SPI通讯例程,主从收发的字符数量都是相同的,如果收发不等长如何处理?
    例如,发送1Byte命令,要收5Byte数据,且是连续的,如下图。

SPI_FIFO.jpg (21.28 KB, 下载次数: 0) 下载附件 收发不等长字符数 2015-3-10 17:30 上传

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
lcptw
1楼-- · 2020-02-20 15:52
FSL_TICS_ZP 发表于 2015-3-11 11:02
效果是这样的,我以前也是用K60调试外部flash芯片也有这个现象,
这一个读取的数值是无效的,当时是这么 ...

就这点,让人生不如死,欲仙欲死;每当你以为高潮已过之时,它悄然来到。
最后尝试一次,用网上的驱动库试试看。
不行就换mcu方案。
FSL_TICS_ZP
2楼-- · 2020-02-20 20:57
lcptw 发表于 2015-3-12 17:23
就这点,让人生不如死,欲仙欲死;每当你以为高潮已过之时,它悄然来到。
最后尝试一次,用网上的驱动库 ...

建议楼主可以通过软件方式处理,丢掉第一个无效数据就可以啊。
lcptw
3楼-- · 2020-02-20 23:43
呵呵,PE生成的中断方式代码。

每次丢掉首byte,在轮询测试情况下,偶尔会失常一把,第一个字符又正常了,然后中断就死在等最后一个字符那里了。

现在改用寄存器操作polling等待的方式,GPIO操作片选NCS(原因?自行参考《【经验分享】KL系列spi主从通信之查询中断例程》,内有详细说明,本坛资源)。

现在算是清楚了,为啥大家很不愿待见PE自动生成的代码,虽然有便于移植,上手快速等诸多优点。
最重要的是:
1、代码复杂,冗余量大,各种宏定义、指针跳转,用寄存器操作就不两条指令的,PE会生成一箩筐。
2、出了问题你都不知道在哪里找原因。

以前还推荐用PE,现在及可预见的将来是不会推荐了,各种坑。

一周热门 更多>