打印
[STM32F4]

stm32F4之用示波器解码I2C协议

[复制链接]
2277|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2021-9-9 12:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
   当我们调试I2C的时候,有时候我们并不清楚,I2C协议有没有正常工作,借助示波器,我们可以很直观的看到通过I2C协议发出数据。所以掌握示波器对I2C进行解码也是很重要的,这里我使用的是 SIGLENT 公司的示波器,型号为 SDS 1202X,支持I2C,SPI解码等。

一.用示波器解码I2C的相关代码

主函数代码

int main(void)
{
    u8 read;
        //初始化延时函数
        delay_init(168);
        //初始化串口
        usart_init(115200);
        //初始化24c02
    Init_24c02();       

        while(1)
        {
                sendOneByte(0x00,0x20);
                read=receiveOneByte(0x00);
                USART_SendData(USART1,read);
            delay_ms(1000);
        }

}
24c02实现读写的代码

void Init_24c02()
{

        IIC_init();

}
//发送一个字节的数据
void sendOneByte(u8 Adddr_send, u8 data_send)
{
        IIC_start();
        IIC_Send_Byte(0xA0);
        IIC_Wait_Ack();
        IIC_Send_Byte(Adddr_send);
        IIC_Wait_Ack();
        IIC_Send_Byte(data_send);
        IIC_Wait_Ack();
        IIC_stop();
        delay_ms(10);
}
//接收一个字节的数据
u8 receiveOneByte(u8 Addr_receive)
{
        u8 receive=0;
        IIC_start();
        IIC_Send_Byte(0xA0);
        IIC_Wait_Ack();
        IIC_Send_Byte(Addr_receive);
        IIC_Wait_Ack();
        IIC_start();
        IIC_Send_Byte(0xA1);
        IIC_Wait_Ack();
        receive=IIC_Read_Byte(0);
        IIC_stop();
        return receive;
}


使用特权

评论回复
沙发
tpgf|  楼主 | 2021-9-9 12:17 | 只看该作者
二.示波器的使用

1.先设置解码参数,点击右边的decode,屏幕下方就会出现几个选项,选择串行总线1,IIC解码,信号源设置(设置CH1为SCK,CH2为SDA),地址7位,指得是设备地址,显示开启(可以看到解码出来的数据)

2.设置解码触发

点击下图中的触发设置


选择总线1(与之前选的解码总线保持一致),触发条件为开始条件


使用特权

评论回复
板凳
tpgf|  楼主 | 2021-9-9 12:18 | 只看该作者

方法一,此时若要捕捉,可以先按解码,然后按触发中的normal,然后上电,若操作正常,应能捕捉的到(本程序是一直循环,方便捕捉)


使用特权

评论回复
地板
tpgf|  楼主 | 2021-9-9 12:18 | 只看该作者

方法二:在已上完电的情况下,点击auto,左右旋转Horizontal键,找到适当的地方(可以看到数据在传输),点击normal,也可以解码触发

这样就可以在示波器上,看到解码的I2C数据


使用特权

评论回复
5
cyclefly| | 2021-9-9 14:18 | 只看该作者
我觉得,这个是教学示波器的使用

使用特权

评论回复
6
tail066| | 2021-9-10 10:02 | 只看该作者
我的示波器,怎么没有这个钮啊

使用特权

评论回复
7
redone| | 2021-9-11 10:47 | 只看该作者
都是上来就试,不行的话,找逻辑分析仪。
示波器这种高级功能不会用
学习了

使用特权

评论回复
8
aoyi| | 2021-10-5 18:03 | 只看该作者
iic必须要通过示波器查看一下

使用特权

评论回复
9
drer| | 2021-10-5 18:09 | 只看该作者
我也喜欢用示波器

使用特权

评论回复
10
gwsan| | 2021-10-5 18:12 | 只看该作者
iic对时序要求的很严格

使用特权

评论回复
11
kxsi| | 2021-10-5 18:21 | 只看该作者
有时候示波器会引入干扰

使用特权

评论回复
12
nawu| | 2021-10-5 18:27 | 只看该作者
使用示波器事半功倍

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1899

主题

15571

帖子

11

粉丝