查看: 2176|回复: 5

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

[复制链接]

该用户从未签到

1

主题

8

帖子

0

新手上路

Rank: 1

积分
7
最后登录
1970-1-1
发表于 2012-11-11 23:14:53 | 显示全部楼层 |阅读模式
单片机是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,不明白总线怎么会被抢。又或者是分频寄存器设置的不对?


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

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-11-12 09:29:22 | 显示全部楼层

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

    能不能发详细点。你这段代码是在写IIC的时候,还是初始化的时候用的?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    帖子

    0

    新手上路

    Rank: 1

    积分
    7
    最后登录
    1970-1-1
     楼主| 发表于 2012-11-12 12:16:29 | 显示全部楼层

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

    你好。
    void Init_IIC(void)是初始化,后面那段是写些IIC从机地址的函数的,一开始要TX=1 MST由0-1才能产生开始信号。看状态寄存器IICS中仲裁丢失,现在MST的1写不进去,总线压根没法运行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-11-12 14:19:46 | 显示全部楼层

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

    初始化的时候不用写这个,只有在读写的时候对他操作就可以.
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    帖子

    0

    新手上路

    Rank: 1

    积分
    7
    最后登录
    1970-1-1
     楼主| 发表于 2012-11-12 19:55:44 | 显示全部楼层

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

    你的意思是说,把初始化的东西写到读写操作里?那不是一样的吗,初始化程序和读写程序我也在main函数里运行的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-11-13 14:45:59 | 显示全部楼层

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

    不是,初始化的时候只需要正常配置寄存器。对于用主模式还是从模式,在写或者读的时候选择就可以了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-6 09:33 , Processed in 0.093194 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表