完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
这是我第一次尝试从EEPROM使用I2CI,认为我已经在数据表中遵循了I2C过程,但是我没有读取任何内存值(我能够用I2CY2写到DAC)。I2C1RCV寄存器总是显示EEPROMWORTEVENTAL=0B10100100;//0xA4I怀疑是否有一些CAN COM。Meg感谢您的任何帮助,我在这里已经包含了我的代码和I2CY1安装在这里方便/ /----int MeMeDATA=0;短ItEndoRead Load;Switter int eMePrdRead地址;Stand int AdvrsValueD15toD8=0;Stand int AdvestsValueD7toD0=0;短ItTun1=0;//EEPROM地址+!用(A2=1和A1=0)// 1010+0100 EEPROMWORTER地址=0B10100100;//0xA4//EEPROM地址+读(A2=1和A1=0)//1010 + 0101 EEPROCEDATABLE=0B10100101;//0xA5/ /将MMIT地址分为可寻址部件AdvesteVald15Dto88= MeMeald& Gt;ESS和0xFF;//LSB//-------------------------//获得PEN-HI-I2C1CONBITS.PEN=1;而(I2C1CONBITS.PEN=1){} / /产生起始脉冲IF(I2C1CONBITS.PEN=0){//起始位集I2C1CONDOS.SEN=1;//P状态位将自动清除}(I2C1CONDSESSE)N==1){}/------启动脉冲完成----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//所有7位//除了第一个“开始位”//在所有位已经被发送之后,从设备将//发送!ACK在SDA行上(I2C1STATBITS,TrSTAT==1){}/ /在这一点上!ACK从从属设备已经/ /接收EEPROM//----地址发送操作完成!----------------------------------------------------------------------------------------/--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------你好现在!//所有7位//除了第一个“开始位”//在所有位已经被发送之后,从设备将//发送!ACK在SDA行上(I2C1STATBITS,TrSTAT==1){}/ /在这一点上!ACK从从属设备已经/ /接收EEPROM//----地址发送操作完成!----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------启动接收数据//芯片没有当while循环时,(I2C1CONBITS.RCEN=1){MeDATA=I2C1RCV;//XFER数据//MeMeDATA总是= 0xA4!!//EEPROMWORTENET= 0B10100100;//0xA4!!!!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//产生P信号//发送停止signal//stop位集I2C1CONbits.PEN=1;//等待完成传输和放大,同时生成状态位(I2C1CONbits.PEN==1){}/------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------le I2C2 I2C1CONbits.I2CSIDL=0;//在空闲模式I2C1CONbits.SCLREL=1;//不拉伸时钟I2C1CONbits.IPMIEN=1;//地址确认启用I2C1CONbits.A10M=0;//7位从地址I2C1CONbits.DISSLW=0;//回转速率禁用I2C1CONbits.SMEN=0;//SMBus dissabled I2C1CONbits.GCEN=0;/SMBus/dissable inter.I2C1CONbits.STREN=0;//dissable stretch of.I2C1CONbits.ACKDT=0;//send 0,主接收I2C1CONbits.ACKEN=1;//I2C1CONbits.RCEN=0;//接收模式没有进行中。0;//repeat start I2C1CONbits.SEN=0;//.start.I2C1BRG=0xA3;//163decimal-400kHzSCL I2C1CONbits.I2CEN=1;//enable I2C2 Delay(0x50L);//generated..(0xffL);/--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
相关推荐
1个回答
|
|
|
不确定所有的代码是否都正常,但是第一个错误是在发送第一个从地址时不检查ACK响应。如果那里没有ACK,则没有必要继续进行。相反,如果确实获得了ACK,则知道线路和地址正常。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
501 浏览 0 评论
5811 浏览 9 评论
2350 浏览 8 评论
2237 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3543 浏览 3 评论
1159浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1120浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
888浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
501浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-13 03:42 , Processed in 1.371847 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2942