|
我用凌阳的IC和MCU通讯,代码如下:
lda IOP_DATA3_L ;装IOP_DATA3_L入累加器a
sta rOutBuffer
ldy #$08
lSPINextBit:
smb clk,clk_cfg
rmb clk,clk_port ;这两句拉低clk脚
rol rOutBuffer ;rOutBuffer左移一位入C检验位
bcc lSPIOutLow
smb DO,DO_CFG ;拉高mosi脚
smb DO,DO_port
jmp lSPIOutOK
lSPIOutLow:
smb DO,DO_CFG
rmb DO,DO_port ;拉低mosi脚
lSPIOutOK:
jsr fDelay ;延时
smb clk,clk_cfg
rmb clk,clk_port ;这两句拉高clk脚
jsr fDelay
dey
bne lSPINextBIT
jsr Delay
rts
以上是我发送一个BYTE的代码,用cpol=1,cpha=1格式
我一次发送8个BYTE比如0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x0b
有时出错移位变成0x2c,0x02,0x03.....0x0b或0x16,0x02,0x03,0x04...0x0b
有时是第二个byte移位变成0x01,0x04,0x03,0x04...0x0b
不知为什么,请大虾指点
|
|