gskinggs

    1. 谁知道ST技术支持电话吗 12/8867 stm32/stm8 2010-11-29
                                       请与你的联系的ST代理联系一下。如果他们不能解决你的问题,他们会安排ST的技术支持去解决你的问题。
    2.                                  版主一指点,我这发热的头脑从迷雾中走出来, 原来这里TIM2->ARR |=1000; 不能用|=,这是以前形成的不好的习惯造成的,本意是让控制寄存器相应的位置1,这里对这样的赋值寄存器ARR来说只要直接赋值就行了,用“|=”就会出现错误,版主一句话,胜我两天的折腾,多谢多谢,同时感谢3楼的ST_ARM兄弟!!
    3. stm8到底有没有内部id资料没写啊 7/4587 stm32/stm8 2010-10-09
                                       To 香水版主,我在memory区看到是数据是0x9D,但是有个问题,我在其它的程序仿真中,看到的数据是0x00,0x7a,0x5a,0x04,0x60,0x83,0x00,不知道是怎么回事?您有时间可以测试一下吗?
    4. STM32f103RB老是死机,帮帮忙哦! 19/6678 stm32/stm8 2010-09-21
                                       先刷个最简单的软件测试硬件。用STM32库里的例子就行。
    5. 自制_stm8八位机_开发工具 35/9013 stm32/stm8 2010-08-10
                                       现在的ST-LINKIII,芯片名字有点变了,内核应该也差不多是这个芯片。
    6. 提前曝光,自制STM8S的C编译器 11/5829 stm32/stm8 2010-07-22
                                       顶! 向楼主致敬!
    7. STM32I2C问题 42/14778 stm32/stm8 2010-07-15
                                       哇哇哇,这个才是我的: void i2c1_evt_isr() {     switch (I2C_GetLastEvent(I2C1))     { /************************** Master Invoke**************************************/           case I2C_EVENT_MASTER_MODE_SELECT:        /* EV5 */             // MSL SB BUSY 30001             if(!check_begin)               i2c_comm_state = COMM_IN_PROCESS;                            if (Direction == Receiver)               {                 if (DeviceOffset != 0xffffffff)                   I2C_Send7bitAddress(I2C1, SlaveADDR, I2C_Direction_Transmitter);                    else                   /* Send slave Address for read */                   I2C_Send7bitAddress(I2C1, SlaveADDR, I2C_Direction_Receiver);                     }               else               {                   /* Send slave Address for write */                   I2C_Send7bitAddress(I2C1, SlaveADDR, I2C_Direction_Transmitter);               }               I2C_ITConfig(I2C1, I2C_IT_BUF , ENABLE);//also TxE int allowed               break;                /********************** Master Receiver events ********************************/           case I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED:  /* EV6 */             // MSL BUSY ADDR 0x30002               if (RxLength == 1)               {                   /* Disable I2C1 acknowledgement */                   I2C_AcknowledgeConfig(I2C1, DISABLE);                   /* Send I2C1 STOP Condition */                   I2C_GenerateSTOP(I2C1, ENABLE);               }               break;                  case I2C_EVENT_MASTER_BYTE_RECEIVED:    /* EV7 */             // MSL BUSY RXNE 0x30040               /* Store I2C1 received data */               *pRxBuffer1++ = I2C_ReceiveData (I2C1);                  RxLength--;               /* Disable ACK and send I2C1 STOP condition before receiving the last data */               if (RxLength == 1)               {                   /* Disable I2C1 acknowledgement */                   I2C_AcknowledgeConfig(I2C1, DISABLE);                   /* Send I2C1 STOP Condition */                   I2C_GenerateSTOP(I2C1, ENABLE);                    }                      if (RxLength == 0)               {                                   MasterReceptionComplete = 1;                       i2c_comm_state = COMM_DONE;                 PV_flag_1 = 0;               }               break;                      /************************* Master Transmitter events **************************/           case I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED:     /* EV8 just after EV6 */             //BUSY, MSL, ADDR, TXE and TRA 0x70082               if (check_begin)               {                 check_begin = FALSE;                 WriteComplete = 1;                 i2c_comm_state = COMM_DONE;                 I2C_ITConfig(I2C1, I2C_IT_EVT | I2C_IT_BUF |I2C_IT_ERR, DISABLE);                 I2C_GenerateSTOP(I2C1, ENABLE);                 PV_flag_1 = 0;                 break;               }                              if (DeviceOffset != 0xffffffff)                 I2C_SendData(I2C1, DeviceOffset);               else               {                 I2C_SendData(I2C1, *pTxBuffer1++);                 TxLength--;               }               break;                          case I2C_EVENT_MASTER_BYTE_TRANSMITTING:       /* EV8 */             //TRA, BUSY, MSL, TXE 0x70080               if (Direction == Receiver)               {                 DeviceOffset = 0xffffffff; // enter read-phase 2 (the same as no memory space)                 I2C_ITConfig(I2C1, I2C_IT_BUF , DISABLE);                 while ((I2C1->CR1 & 0x200) == 0x200);                 I2C_GenerateSTART(I2C1, ENABLE);                 break;               }                              if (TxLength >0)               {                   I2C_SendData(I2C1, *pTxBuffer1++);                         TxLength--;               }               /* Disable the I2C_IT_BUF interrupt after sending the last buffer data               (last EV8) to no allow a new interrupt with TxE and only BTF could generate it */               else if(TxLength == 0)               {                 I2C_ITConfig(I2C1,  I2C_IT_BUF, DISABLE);                 I2C_GenerateSTOP(I2C1, ENABLE);              }               break;                  case I2C_EVENT_MASTER_BYTE_TRANSMITTED:       /* EV8-2 */             //TRA, BUSY, MSL, TXE and BTF 0x70084             if (Direction == Transmitter)             {               MasterTransitionComplete = 1;               I2C_ITConfig(I2C1, I2C_IT_EVT | I2C_IT_BUF, DISABLE);               // enable AF and SB and ADDR interrupt               I2C_ITConfig(I2C1, I2C_IT_EVT | I2C_IT_ERR, ENABLE);               check_begin = TRUE;               i2c_comm_state = CHECK_IN_PROCESS;               //while ((I2C1->CR1 & 0x200) == 0x200);                 if(I2C1->CR1 & 0x200)                   I2C1->CR1 &= 0xFDFF;               I2C_GenerateSTART(I2C1, ENABLE);               break;             } else             {               break;             } /********************** Slave Transmitter Events ******************************/     case I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED:  /* EV1 */       //TRA, BUSY, TXE and ADDR 0x60082       i2c_comm_state = COMM_IN_PROCESS;                I2C_SendData(I2C1, *pTxBuffer1++);         TxLength--;         I2C_ITConfig(I2C1, I2C_IT_BUF , ENABLE); // also allow TxE         break;     case I2C_EVENT_SLAVE_BYTE_TRANSMITTED:          /* EV3 */       //TRA, BUSY, TXE and BTF  0x60084         if (TxLength>0)         {             I2C_SendData(I2C1, *pTxBuffer1++);             TxLength--;         }         break;     case 0x60080:       // TRA, BUSY,TXE, no BTF       // if this case added, above case would never be reached       if (TxLength>0)         {             I2C_SendData(I2C1, *pTxBuffer1++);             TxLength--;             if (TxLength ==0)             {               SlaveTransitionComplete =1;               i2c_comm_state = COMM_DONE;               I2C_ITConfig(I2C1, I2C_IT_BUF , DISABLE);//close TxE int               I2C_ITConfig(I2C1, I2C_IT_ERR , ENABLE);//to handle AF from master receiver               PV_flag_1 = 0;             }         }              break;           /************************ Slave Receiver Events *******************************/     case I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED:         /* EV1 */       // BUSY ADDR 0x20002       i2c_comm_state = COMM_IN_PROCESS;              I2C_ITConfig(I2C1, I2C_IT_BUF , ENABLE); // also allow RxNE         break;     case I2C_EVENT_SLAVE_BYTE_RECEIVED:              /* EV2 */       // BUSY RxNE 0x20040         *pRxBuffer1++ = I2C_ReceiveData(I2C1);         RxLength--; // controled by i2c1 sender                  if (RxLength == 0)         {             SlaveReceptionComplete = 1;             I2C_ITConfig(I2C1, I2C_IT_BUF , DISABLE); // only EVT(STOPF) int             I2C_ITConfig(I2C1, I2C_IT_EVT , ENABLE);         }         break;     case I2C_EVENT_SLAVE_STOP_DETECTED:             /* EV4 */       // STOPF 0x10         /* Clear I2C2 STOPF flag: read of I2C_SR1 followed by a write in I2C_CR1 */         (void)(I2C_GetITStatus(I2C1, I2C_IT_STOPF));         I2C_Cmd(I2C1, ENABLE);         i2c_comm_state = COMM_DONE;         PV_flag_1 = 0;         //I2C_ITConfig(I2C2, I2C_IT_EVT, DISABLE);         break;     case 0x20050:       // used when Rx and Tx handley by one mcu at the same time       // receive last data and clear stopf         *pRxBuffer1++ = I2C_ReceiveData(I2C1);         RxLength--;         SlaveReceptionComplete = 1;         (void)(I2C_GetITStatus(I2C1, I2C_IT_STOPF));         I2C_Cmd(I2C1, ENABLE);         I2C_ITConfig(I2C1, I2C_IT_EVT | I2C_IT_BUF, DISABLE);         I2C_ITConfig(I2C1, I2C_IT_BUF , DISABLE);         break;              case 0x20010:       // busy+stopf       // when last data read isr exist, there would be stopf flag       //which is set during read ISR. and as sender's check begin       // busy also set       i2c_comm_state = CHECK_IN_PROCESS;       (void)(I2C_GetITStatus(I2C1, I2C_IT_STOPF));         I2C_Cmd(I2C1, ENABLE);         break;             /******************************* default Events *******************************/      default:        break;       }   } void i2c1_err_isr() {     if (I2C_GetFlagStatus(I2C1, I2C_FLAG_AF))     {       if (check_begin)         I2C_GenerateSTART(I2C1, ENABLE);       else if (I2C1->SR2 &0x01)       {         I2C_GenerateSTOP(I2C1, ENABLE);         i2c_comm_state = COMM_EXIT;         PV_flag_1 = 0;       }                I2C_ClearFlag(I2C1, I2C_FLAG_AF);     }     if (I2C_GetFlagStatus(I2C1, I2C_FLAG_BERR))     {       if (I2C1->SR2 &0x01)       {         I2C_GenerateSTOP(I2C1, ENABLE);         i2c_comm_state = COMM_EXIT;         PV_flag_1 = 0;       }              I2C_ClearFlag(I2C1, I2C_FLAG_BERR);     } }
    8. 一个AVR的片内AD从ICC移植都WINAVR 6/3464 嵌入式系统 2010-05-21
      我以前也用proteus仿真过一次AD,但是结果也不是很好。。。 别用仿真,来真的,proteus出问题是经常的。。。
    9. 以前软硬件都搞点,现在专攻嵌入式软件 深深的MARK!
    10. 想学习硬件 劳烦各位推荐几十本书 20/7931 嵌入式系统 2010-05-04
      计划太庞大了,你应该先说下你目前的基础 所有的从头开始学,肯定首先的列个基础课程书目的
    11. TCPMP修改(有经验的朋友帮帮忙) 10/3204 嵌入式系统 2010-04-30
      期待~!~! 学习中。
    12. 多看多练.....看多了写多了就习惯了
    13. wince+OV9650显示问题 6/4209 嵌入式系统 2010-01-23
      cam_buffer和cam_temp是静态数组,将从本地栈中分配大小2*200*200*2=160000,惨哦。 建议楼主深入了解一下堆、栈等的区别及使用事项
    14.                                  STM32不管是从RAM还是Flash启动,IO口的默认状态都是浮空。
    15. 引用 9 楼 joyzml 的回复: 另外你为什么调不出函数 是不是你测试代码 加载DLL的方法存在问题
      我上面写的步骤都没有问题吗?
    16. 烧片机的工作原理是什么啊? 12/10790 嵌入式系统 2010-01-13
      向原厂咨询恐怕更好
    17. 呵呵,网上找个程序弄下,不行再发帖。
    18.                                  
      感情你们还是纸上谈兵啊 happya1 发表于 2009-11-13 12:28
    19. stm8指令执行周期需要几个系统时钟? 27/19821 stm32/stm8 2009-11-13
                                       恩,ARM的特点。多模式, 用户模式,中断模式,系统模式。。。。
    20. stm32输入输出IO的问题 12/6318 stm32/stm8 2009-11-12
                                       对,是同一个芯片的 我在做实验 现在实验的结果是IO1输出高电平时IO2能测到 但是IO1输出低电平时IO2能测不到

最近访客

< 1/1 >

统计信息

已有122人来访过

  • 芯积分:--
  • 好友:--
  • 主题:14
  • 回复:53

留言

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


现在还没有留言