yangganglone

    1. 我算是服了stm8硬件iic了 16/17191 stm32/stm8 2017-09-28
      5000322 发表于 2017-7-20 09:49 请版主,说明如何解决的。多谢了!
      将STM8的iic引脚配置成开漏,再有注意2个时序一定要吻合,最好跑cos系统,将通讯优先级设定最高! 保证不能被中断打断!因为IIC是有规定,时序最大值和最小值都是有要求的,我这个贴也有3年时间了,想想,希望帮到更多人吧!
    2. 基于单片机的公交车刷卡系统 2/2455 单片机 2014-05-02
      5百元,我帮你搞定!
    3. 我算是服了stm8硬件iic了 16/17191 stm32/stm8 2014-05-02
      stm8s003 的PB4和PB5是真开漏,哎呀,没看手册啊!
    4. 我算是服了stm8硬件iic了 16/17191 stm32/stm8 2014-05-02
      前面是主机的代码。   软件模拟的。 下面是从机的代码。主要是初始化部分,和iic中断部分。 /* MAIN.C file * * Copyright (c) 2002-2005 STMicroelectronics */ #include "103io.h" #include "type.h" void Gpio_Init(void); void Iic_Init(void); u8 temp,temp1,temp2; void Gpio_Init(void) {                 // CLK_CKDIVR = 0x18;                  PB4_DDR=1;                  PB5_DDR=1;                  PB4_CR1=0;                  PB5_CR1=0;                 // PB4_ODR=1;                  //PB5_ODR=1;                   } void Iic_Init(void) {                 CLK_PCKENR1 |= 0x01;                                //使能IIC外设时钟                 I2C_TRISER = 0x02;        //上升沿时间                 I2C_CR1&=~(1
    5. 我算是服了stm8硬件iic了 16/17191 stm32/stm8 2014-05-02
      /* MAIN.C file * * Copyright (c) 2002-2005 STMicroelectronics */ #include "208io.h" #include "iic.h" #include "type.h" #define N  8 u8 buf[N]; main() {                         IIC_Init();                         while (1)                 {                                 AT24CXX_WriteOneByte(0x01);                                 delay_ms(100);                                buf[0]=AT24CXX_ReadOneByte();                                         delay_ms(10);                                        AT24CXX_WriteOneByte(0x02);                                         delay_ms(10);                                        buf[1]=AT24CXX_ReadOneByte();                                                 delay_ms(100);                        } }复制代码
    6. 我算是服了stm8硬件iic了 16/17191 stm32/stm8 2014-05-02
      u8 AT24CXX_ReadOneByte(void) {                                                   u8 temp=0;                                                                                                                                                                                   IIC_Start();                                      IIC_Send_Byte(0XAB);           //进入接收模式                                           IIC_Wait_Ack();              temp=IIC_Read_Byte(0);                       IIC_Stop();//产生一个停止条件                             return temp; }            void AT24CXX_WriteOneByte(u8 cmd) {                                                                                                                                                                                               IIC_Start();                   IIC_Send_Byte(0XAA);            //发送写命令                 IIC_Wait_Ack();                                                                                        IIC_Send_Byte(cmd);     //发送字节                                                                           IIC_Wait_Ack();                                     IIC_Stop();//产生一个停止条件                 delay_ms(10);          }复制代码 /* MAIN.C file * * Copyright (c) 2002-2005 STMicroelectronics */ #include "208io.h" #include "iic.h" #include "type.h" #define N  8 u8 buf[N]; main() {                         IIC_Init();                         while (1)                 {                                 AT24CXX_WriteOneByte(0x01);                                 delay_ms(100);                                buf[0]=AT24CXX_ReadOneByte();                                         delay_ms(10);                                        AT24CXX_WriteOneByte(0x02);                                         delay_ms(10);                                        buf[1]=AT24CXX_ReadOneByte();                                                 delay_ms(100);                        } }

最近访客

< 1/1 >

统计信息

已有6人来访过

  • 芯积分:--
  • 好友:1
  • 主题:2
  • 回复:6

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言