完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这几天在调试28335的I2C,发现了个很恶心的问题,i2c设置为主设备发模式,发一个0x1e的指令,外部什么都没有接,却在i2c的接受寄存器中收到了数据,就是我刚发的1E,这是怎么回事呀?跪求大神指导~!!代码如下:
void I2CA_Init(void) { // Initialize I2C I2caRegs.I2CMDR.bit.IRS =0; I2caRegs.I2CSAR = 0x00; // Slave address I2caRegs.I2CPSC.all = 14;//9; // Prescaler - need 7-12 Mhz on module clk I2caRegs.I2CCLKL = 10;//15; // NOTE: must be non zero I2caRegs.I2CCLKH =5;//15; //Fi2c=Fp/((I2CCLKL+d)+(I2CCLKH+d)) I2caRegs.I2CIER.all = 0x00; // Enable SCD & ARDY interrupts I2caRegs.I2CMDR.bit.IRS = 1; // Take I2C out of reset // Stop I2C when suspended } Uint16 WriteData(Uint16 CMD) { Uint16 i; if (I2caRegs.I2CSTR.bit.BB == 1) { return I2C_BUS_BUSY_ERROR; } while(!I2C_xrdy()); I2caRegs.I2CSAR = 0x00; I2caRegs.I2CCNT = 1; I2caRegs.I2CDXR = CMD; I2caRegs.I2CMDR.all = 0x6E20; if (I2caRegs.I2CSTR.bit.NACK == 1) return I2C_BUS_BUSY_ERROR; return I2C_SUCCESS; } 我在主程序中调用WriteData(0X1E),单步跟随调试发现I2caRegs.I2CDRR = 0x1E,怎么回事呀? |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于 DSP5509 进行数字图像处理中 Sobel 算子边缘检测的硬件连接电路图
2328 浏览 0 评论
680 浏览 0 评论
普中科技F28335开发板中,如何使用aic23播放由代码生成的正弦波
2765 浏览 0 评论
3525 浏览 1 评论
1192 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:54 , Processed in 0.559863 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号