[技术问答] HC32L136 的SPI多字节写入,波形却只有一字节

[复制链接]
2025|12
 楼主| heart小十一 发表于 2022-8-8 14:48 | 显示全部楼层 |阅读模式
本帖最后由 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 | 显示全部楼层
你是怎么抓取字节的
 楼主| heart小十一 发表于 2022-8-9 08:50 | 显示全部楼层
carpsnow 发表于 2022-8-8 21:21
你是怎么抓取字节的

使用的示波器,在写入DATA寄存器数据后加一些延时就能出现多于一字节的波形
carpsnow 发表于 2022-8-11 21:52 | 显示全部楼层
能仿真么?或者逻辑分析仪抓一下
koala889 发表于 2022-8-16 20:09 | 显示全部楼层
逻辑分析仪看看
tpgf 发表于 2022-9-6 08:08 | 显示全部楼层
每包前后都有标识位的吧
芯路例程 发表于 2022-9-6 09:35 | 显示全部楼层
你用示波器抓的,抓的范围大吗?有没可能两个字节中间间隔太大?
芯路例程 发表于 2022-9-6 09:39 | 显示全部楼层
可以把示波器抓到的图发出来,这样大家好分析!
qcliu 发表于 2022-9-6 12:25 | 显示全部楼层
spi配置成什么模式了
drer 发表于 2022-9-6 12:32 | 显示全部楼层
每包之间的时间间隔是多久呢
coshi 发表于 2022-9-6 12:39 | 显示全部楼层
这个字节是固定的波形吗
kxsi 发表于 2022-9-6 12:46 | 显示全部楼层
在线仿真一下
wiba 发表于 2022-9-6 12:54 | 显示全部楼层
除了多出来的字节 其他正常字节可以发送吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部