关于CH559官方例程USBH_KM.c中与SPI0slv.c合并后开启SPI0中断问题

如题将CH559官方USBH_KM.c与SPI0slv.c合并在一起,采用中断方式通过SPI0发送键盘数据,当响应中断后,主程序卡住了,求解!感谢!

程序功能是USB接收数据然后通过SPI发送数据吗?可以在SPI中断中最前和最后加上打印,看一下中断程序是否有运行到最后,SPI的单字节收发函数中会有while死等的代码,要注意是否有在中断中调用了相关的函数。


1635215832136229.jpg

1635215832193878.jpg

1635215832750143.jpg

1635215832147950.jpg

SPI主机发的是单字节指令,从测试结果看应该是SO_Free没有变1,对这个标志位不是很理解,还请帮忙解释下。


可以对SPI线上的波形抓包贴出来看看,看一下在从收到发的过程中,SCS线是否一直保持为低电平状态,SCS和SCK之间的关系。

因为单片机的SPI没有dma,同时将主频提上去加快中断处理。



只有登录才能回复,可以选择微信账号登录