首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

【求助】 ★★9s08-IIC不能START!★★

【求助】 ★★9s08-IIC不能START!★★

本帖最后由 jkaven 于 2012-11-11 23:19 编辑

单片机是9s08DZ60

初始化
void Init_IIC(void)
{
IICF=0X80;//保持时间(单位us),SDA=3.5,SDA&SCL开始=3.0,SCL停止=5.5 IIC总线频率100kbps
IICA=0xF0;      //D7-D1位是MCU作为从机时的地址,最低位不使用
IICC1=0b10001000;
        //||||||||___不用
        //||||||
        //||||||_____RSTA位
        //|||||______不发送应答信号@TXAK=1
        //||||_______接收模式
        //|||________从机模式 @MST
        //||_________禁止IIC中断
        //|__________使能IIC模块@IICEN
}
与SDA和SCL复用的PTE寄存器没有定义

当写到这一步
IICC1_TXAK=0;                //使能;收到一个数据字节后,向总线发送应答信号
    IICC1 |= 0x10;               //TX = 1,MCU设置为发送模式
IICC1_MST=1;  //从模式变为主模式,产生start信号

在单步运行中可以看到MST没有被置1,而状态寄存器中的IICIF和ARBL均被置1,判断应该是仲裁丢失,导致MST被复位成0.但是我的板子上目前直挂了一个IIC器件,是光传感器BH1750,不明白总线怎么会被抢。又或者是分频寄存器设置的不对?

跪求大神指点啊。感激不尽,急死我了。。
返回列表