打印
[PIC®/AVR®/dsPIC®产品]

程序一直循环

[复制链接]
299|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanwe|  楼主 | 2023-1-8 17:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设断点发现,程序会一直循环,这是为何?按理说发送完成SSP1IF会置1

void I2C_Start()                        //开启I2C
{
    SSP1CON2bits.SEN = 1; //开启指令
    while (SSP1CON2bits.SEN == 1);
}


void I2C_Stop()                               //停止I2C
{
    SSP1CON2bits.PEN = 1;
    while (SSP1CON2bits.PEN);
}

void write_eeprom(unsigned char address)
  {
        unsigned char m;
        I2C_Start();                                      //开启
        PIR1bits.SSP1IF = 0;
        SSP1BUF = 0xA0 ;                             //E2PROM地址                           
        while (!PIR1bits.SSP1IF);
        PIR1bits.SSP1IF = 0;
        SSP1BUF = address;                         //写地址                           
       while(!PIR1bits.SSP1IF);
        PIR1bits.SSP1IF = 0;
        for (m= 0;m < 6; m++)
        {
            SSP1BUF = EE_Data[m];                  //数值
            while(!PIR1bits.SSP1IF);
            PIR1bits.SSP1IF == 0;
        }
        I2C_Stop();
        PIR1bits.SSP1IF = 0;
    }

使用特权

评论回复
沙发
chuxh| | 2023-1-8 17:14 | 只看该作者
刚弄完此类项目,pic的iic比较麻烦

使用特权

评论回复
板凳
xxrs| | 2023-1-8 17:15 | 只看该作者
所有程序编程 都是需要一段时间去解决的。慢慢来吧。

使用特权

评论回复
地板
zhuhuis| | 2023-1-8 17:17 | 只看该作者
程序可不好做,基本都是慢慢整出来的,不要着急慢慢来。

使用特权

评论回复
5
jiajs| | 2023-1-8 17:19 | 只看该作者
你这是和IIC接口EE通信,那还要查看相关EE的数据手册,看看读写时序,再看看IIC的时序对不对

使用特权

评论回复
6
jlyuan| | 2023-1-8 17:21 | 只看该作者

什么叫一直循环

使用特权

评论回复
7
happy_10| | 2023-1-8 17:22 | 只看该作者
用MCC配置出来的代码,比较一下看怎么样

使用特权

评论回复
8
chenho| | 2023-1-8 17:24 | 只看该作者
发送完一直循环?

使用特权

评论回复
9
zqc831| | 2023-1-13 09:44 | 只看该作者
for (m= 0;m < 6; m++)
        {
            SSP1BUF = EE_Data[m];                  //数值
            while(!PIR1bits.SSP1IF);
            PIR1bits.SSP1IF == 0;     //  这里多了一个 “=”号
        }

使用特权

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

本版积分规则

979

主题

8749

帖子

4

粉丝