白姐透特今晚开什么码

打印

18系列的硬件IIC无SCL波形输出

[复制链接]
59|8
跳转到指定楼层
楼主
第一次使用PIC18系列的芯片,在使用硬件IIC(MSSP)时,发现SCL、SDA上均无正常波形输出(示波器测量),一直为高电平,如下是MSSP模块初始化code:
void i2c_master_init(void)
{ TRISCbits.TRISC3=1; //RC3--SCL R*--SDA
TRISCbits.TRIS*=1;
SSPCON1bits.SSPM0=0;
SSPCON1bits.SSPM1=0;
SSPCON1bits.SSPM2=0;
SSPCON1bits.SSPM3=1; //I2C Master mode
SSPSTATbits.SMP=1; SSPADD=19;//SCL CLOCK=8000000/(4*(SSPADD+1)) 100KHZ
SSPCON1bits.SSPEN=1;
PIE1bits.SSPIE=1;
//INTCONbits.PEIE = 1;
// INTCONbits.GIE = 1;
}
读写函数基本就是按照网上标准的流程对SSPBUF操作,基本操作如下(中间有省略)
SSPCON2bits.SEN=1;//start condition
while(SSPCON2bits.SEN == 1);//waiting for Start condition completed
PIR1bits.SSPIF=0;
SSPBUF=0xAA;
while(PIR1bits.SSPIF == 0);
PIR1bits.SSPIF=0;
~ ~
SSPBUF=data;
while(PIR1bits.SSPIF == 0);
PIR1bits.SSPIF=0;
SSPCON2bits.PEN=1;//stop condition

相关资料

沙发
|2019-12-19 23:34|只看该作者

你有什么打算呢?或者你想知道什么?
板凳
 楼主|2019-12-19 23:39|只看该作者
从设置的断点调试看,程序会卡在while(PIR1bits.SSPIF == 0);语句无法运行下去,如果把while语句去掉,示波器上也无时钟波形,感觉好像IIC模块根本没有工作
地板
|2019-12-19 23:42|只看该作者
多看看资料
5
 楼主|2019-12-19 23:48|只看该作者
找了很多资料,INIT配置部分都是跟我一致的,没有牵涉其它寄存器配置了,是否我有遗漏
6
|2019-12-19 23:52|只看该作者

使用IO模拟I2C好了
7
|2019-12-19 23:55|只看该作者
接上拉电阻了吗
8
|2019-12-19 23:57|只看该作者

TRISCbits.TRISC3 = 1;   //RC3--SCL

应该是

TRISCbits.TRISC3 = 0;
9
|2019-12-20 08:59|只看该作者
MCC为什么不用
扫描二维码,随时随地手机跟帖
*滑动验证:

本版积分规则

我要发帖投诉建议创建版块

快速回复

您需要登录后才可以回帖
登录 | 注册

论坛热帖

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