中级会员
 
- 积分
- 281
- 金钱
- 281
- 注册时间
- 2015-8-18
- 在线时间
- 43 小时
|
5金钱
uint16* I2c_Page_Rx_single()
{
uint16 I2Cbuffer,i;
int num=0;
I2C2OAR = 0x00;
I2C2IMR = 0x0;
I2C2CNT = 16;
I2C2SAR = 0x50;
I2C2MDR |= MST;
I2C2MDR |= NIRS;
I2C2MDR &= ~TRX;
I2C2MDR |= STT + STP;
for(i=0;i<16;i++)
{
while(!(I2C2SR & 0x0008));
I2Cbuffer=I2C2DRR;
printf("%d\r\n", I2Cbuffer);
}
这是我通过sm470读取AT24C02 中数据的程序,但是我发现读出来的数据与写进去的不一致!
首先将AT24C02的器件地址写入,然后是要读取的数据的地址,I2C2SAR = 0x50;
0x50是器件地址,之后我就不知道怎么给读取数据的地址, 再次给I2C2SAR地址的话就不能读取
谁用过SM470,帮我解答一下! |
|