|
马老师,之前我使用汇编写程序,现刚开始用C,参考你《AVR 单片机嵌入式系统原理与应用实践》这样本书中16-4的例子,操作24C04与PCF8563时,读写24C04都没有问题,写入PCF8563也没有问题,
但是读PCF8563不能正确读出(用C写入,用汇编读出),望各位指导。这个我整了三天了,还是整不出来,特请教各位!
void EEprom_read(unsigned int LCD_BUS_ADDRESS,unsigned int Addr,unsigned char n, unsigned char *arr)
{
unsigned char i;
I2C_start(); // 发起始信号
I2C_write(LCD_BUS_ADDRESS); // 发写从机写寻址字节
// I2C_write(Addr>>8); // 发存储单元地址高字节(读写程序的高字节都不要了,)
I2C_write(Addr); // 发存储单元地址低字节
I2C_start(); // 发起始信号
I2C_write(LCD_BUS_ADDRESS | 1); // 发从机读寻址字节
for (i=1;i<=n-1;i++)
{
*arr = I2C_read(1); // 读一个字节数据,返回ACK
arr++;
}
*arr=I2C_read(0); // 读最后一个字节数据,返回NO ACK
I2C_stop(); // 发停止信号
}
;读PCF8563的数据到time_data
EEprom_read(0xa3,0,15,time_data); |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|