我寫了個小程序,本想用I2C模塊來控制CH423來驅(qū)動液晶,但現(xiàn)在發(fā)現(xiàn)我的數(shù)據(jù)發(fā)不出去,這里的程序我把它簡化了,我的目的是想讓CH423的OC0-OC7輸出低電平.請大家?guī)臀铱聪鲁绦蚰睦锊粚?先謝大家了
============================================================
#include "p30f2010.h"
int main()
{
OpenI2C();
write_I2C(0X48,0X00);//OC0-OC7為通用輸出,OC8-OC15為通用輸出,禁止電平變化中斷,
write_I2C(0x44,0x00);//OC0-OC7輸出低電平
}
int write_I2C( I2C_cmd, I2C_data)
{
StartI2C();
while(I2CCONbits.SEN==1);
MasterWriteI2C(I2C_cmd); /* 8 bit cmd*/
while(I2CSTATbits.TRSTAT);
if(I2CSTATbits.ACKSTAT)
{return 0;}
MasterWriteI2C(I2C_data); /*8 bit data*/
while(I2CSTATbits.TRSTAT);
if(I2CSTATbits.ACKSTAT)
{ return 0;}
StopI2C();
while(I2CCONbits.PEN);
return 1;
}
MasterWriteI2C(int data_out)
{
I2CTRN = data_out;
if(I2CSTATbits.IWCOL) /* If write collision occurs,return -1 */
{I2CSTATbits.IWCOL=0;return -1;}
else
{return 0;}
}
OpenI2C()
{
I2CBRG =12; /*BAUD= 400khz,at 7.3728mhz fcy*/
I2CCONbits.I2CEN=1;
}
StartI2C()
{
I2CCONbits.SEN=1; /* initiate Start on SDA and SCL pins */
}
StopI2C()
{
I2CCONbits.PEN=1; /* initiate Stop on SDA and SCL pins */
}
電路圖
1072811209905502.pdf 1072811209905550.pdf CH423資料
請教一下,DSPIC30F2010的I2C模塊
全部回復(fù)(2)
正序查看
倒序查看
@xjlwp
我用的是MPLABIDEV7.51,編譯器為MPLABC30V1.20
PIC24F之EEPROM讀寫中斷事件處理函數(shù)要點及說明
http://blog.ednchina.com/hotpower/20100/category.aspx
http://blog.ednchina.com/hotpower/20100/category.aspx
0
回復(fù)