HC32L136 的SPI多字节写入,波形却只有一字节
本帖最后由 heart小十一 于 2022-8-8 14:50 编辑void SPIWriteMultiByte(uint8_t *pBuf,uint16_t length)
{
uint16_t i;
uint8_t temp;
PIN_CS_L;
M0P_SPI0->SSN&=~(1<<0);
for(i=0;i<length;i++)
{
/*查询等待TXE发送缓冲器状态标志*/
while(M0P_SPI0->STAT&(1<<2)==0);
M0P_SPI0->DATA = *(pBuf+i);
/*查询等待RXNE发送缓冲器状态标志*/
while(M0P_SPI0->STAT&(1<<1)==0);
temp = M0P_SPI0->DATA;
}
/*查询等待TXE发送缓冲器状态标志*/
while(M0P_SPI0->STAT&(1<<2)==0);
/*查询等待busy总线状态标志 0-空闲1-正在传输*/
while(M0P_SPI0->STAT&(1<<3)!=0);
M0P_SPI0->SSN|=(1<<0);
PIN_CS_H;
}
这么写有什么毛病吗?难
你是怎么抓取字节的 carpsnow 发表于 2022-8-8 21:21
你是怎么抓取字节的
使用的示波器,在写入DATA寄存器数据后加一些延时就能出现多于一字节的波形 能仿真么?或者逻辑分析仪抓一下 逻辑分析仪看看 每包前后都有标识位的吧 你用示波器抓的,抓的范围大吗?有没可能两个字节中间间隔太大? 可以把示波器抓到的图发出来,这样大家好分析! spi配置成什么模式了 每包之间的时间间隔是多久呢 这个字节是固定的波形吗 在线仿真一下 除了多出来的字节 其他正常字节可以发送吗
页:
[1]