spi做从设备时接受处理程序只能处理第一个字节

2019-07-14 16:22发布



主设备连续发送4个16位的数据,第一个是0x3a05,于是想用这个数据来作为帧首判断,结果想在SPI中断里将串口接收到的数组发送出来,总是不成功。
于是精简了下函数,只发送spi2Num这个数,结果总是1...
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
dull20112011
1楼-- · 2019-07-14 23:40
支持楼上的,能出来一已经算幸运了...
谦谦三君子
2楼-- · 2019-07-15 01:29
 精彩回答 2  元偷偷看……
谦谦三君子
3楼-- · 2019-07-15 02:34
本帖最后由 any012 于 2016-5-18 14:31 编辑

再请教下,将spi2Num改成全局变量后,可以打印出spi2Recive[]数组了,但结果全是0x3a05.我用示波器观察了波形,主设备发送过来的数据只有第一个是0x3a05.

修改后的程序:


串口输出结果:
spi2recive[0]: 3a05
spi2recive[1]: 3a05
spi2recive[2]: 3a05
spi2recive[3]: 3a05
spi2recive[4]: 3a05
spi2Num: 0
谦谦三君子
4楼-- · 2019-07-15 05:44
感觉SPI中断函数只能处理第一个16位数据。
谦谦三君子
5楼-- · 2019-07-15 06:47
是不是中断函数做的事太多了,除了帧首,其他的数据SPI中断没有响应过来?

60user90
6楼-- · 2019-07-15 09:07
可能发生OVR

一周热门 更多>