wwwwwwx

    1. M8while循环的怪问题 7/3756 stm32/stm8 2011-01-19
                                       感谢这么多人给我的建议,就是volatile的问题,改变了定义就解决了。 我记得以前我用KEIL51,似乎就没这个问题。用ARM的时候倒是注意了。没想到M8还是要注意这个问题。 这回记住了。谢谢!
    2.                                  
      据说有人买了跟我同样的三合一开发板,也遇到了同样的问题,那么我就多说几句,希望对大家有用。 此问题实际上是STLINK根本就没工作。 解决办法:在ST网站下载STLINK UPGRADE升级。 这个三合一板运行upgrade后点devi ...
      原来如此,谢谢分享。其实ST Toolset(安装STVP所用的安装包)安装好后,就已经有这个STLINK UPGRADE了,路径为:Start -> All Programs -> ST Toolset -> Setup -> Upgrade STLink (一个蝴蝶的图标)。
    3. 奇怪!请教版主I2C的时钟问题 10/11755 stm32/stm8 2010-06-30
                                       
      请将你的代码贴出来,我发现很多客户在用STM32写程序时,有一些不合理的地方。
      根据官方EEPROM例程修改而来,如发送程序:    /*wait 5us min for bus free time limitation for later transaction*/    SetDelayTime_us(5);    while(!TOFlag);     StopDelayCount();          //SysTick_CounterCmd(SysTick_Counter_Disable);     TOFlag = FALSE;        /*wait bus free*/    SetDelayTime_us(BUS_BUSY_TIMEOUT);     while((I2C_GetFlagStatus(I2Cx, I2C_FLAG_BUSY))&&(!TOFlag));     StopDelayCount();          //SysTick_CounterCmd(SysTick_Counter_Disable);     if (TOFlag)     {       TOFlag = FALSE;       return I2C_BUS_BUSY;     }     /*send start and wait*/     I2C_GenerateSTART(I2Cx, ENABLE);        SetDelayTime_us(SEND_START_TIMEOUT);     while(!(I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_MODE_SELECT) || TOFlag));   //wait BUSY,MSL,SB to be set     StopDelayCount();            //SysTick_CounterCmd(SysTick_Counter_Disable);     if (TOFlag)     {       TOFlag = FALSE;       return I2C_SEND_START_ERR;     }       /* send 7-bit slave address and wait */     I2C_Send7bitAddress(I2Cx, (u8)(slaveaddr & 0xFF), I2C_Direction_Transmitter);    SetDelayTime_us(SEND_ADDR7_TIMEOUT);     while(!(I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) || TOFlag));  //Wait BUSY/MSL/ADDR/TxE/TRA to be set     StopDelayCount();            //SysTick_CounterCmd(SysTick_Counter_Disable);     if (TOFlag)     {       TOFlag = FALSE;       I2C_GenerateSTOP(I2Cx, ENABLE);       while ((I2Cx->CR1 & 0x200) == 0x200);   //wait while STOP bit not cleared       if(I2C_GetFlagStatus(I2Cx, I2C_FLAG_AF))         I2C_ClearFlag(I2Cx, I2C_FLAG_AF);       return I2C_ADDR_MATCH_ERR; I2C_SendData(I2Cx, *pBuffer++);     length--;     while (length--)     {         SetDelayTime_us(SEND_DATA_TIMEOUT);              while (((I2C_GetLastEvent(I2Cx) & 0x04) != 0x04)&&(!TOFlag));  //Wait BTF to be set      // while (((I2C_GetLastEvent(I2Cx) & 0x80) != 0x80));//&&(!TOFlag));         StopDelayCount();              if (TOFlag)         {           TOFlag = FALSE;           I2C_GenerateSTOP(I2Cx, ENABLE);           while ((I2Cx->CR1 & 0x200) == 0x200);           if(I2C_GetFlagStatus(I2Cx, I2C_FLAG_AF))             I2C_ClearFlag(I2Cx, I2C_FLAG_AF);           return I2C_DATA_TIMEOUT;         }         I2C_SendData(I2Cx, *pBuffer++);     }       SetDelayTime_us(SEND_DATA_TIMEOUT);     while (!(I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_TRANSMITTED) || TOFlag));    StopDelayCount();        if (TOFlag)     {       TOFlag = FALSE;       I2C_GenerateSTOP(I2Cx, ENABLE);       while ((I2Cx->CR1 & 0x200) == 0x200);       if(I2C_GetFlagStatus(I2Cx, I2C_FLAG_AF))         I2C_ClearFlag(I2Cx, I2C_FLAG_AF);       return I2C_DATA_TIMEOUT;     }     /* send stop to close communication */     I2C_GenerateSTOP(I2Cx, ENABLE); 能不能回答一下我1楼提出的那三个问题? 还有感觉I2C设计的怪怪的,接收时不能在从DR寄存器读取字节后立即产生NAK或STOP,而是必须再接收至少三个字节,也就是手册上所说的读n字节时序: (n-2)BTF后发NAK -> 读(n-2) -> 发STOP -> 读(n-1) -> 等待RxNE -> 读n), 这对于已知要读取的长度的数据好处理,可以在结束前三个字节时开始处理NAK,STOP,而对于需要根据接收的数据来判断是否继续接收,假如根据一定的协议从DR读出接收到的字节指明接收结束,则后续发出NAK和STOP就会必须多读3个字节才结束.这在某些时候会导致问题,比如本来后面的数据要下次读的而你本次为了发出NAK和STOP就多读了3个,那下次读可能就丢失了3个数据.     }
    4. STVD关掉在搞什么? 12/4594 stm32/stm8 2010-06-16
                                       我用过两台电脑都这样
    5. 串口通信问题求助 5/3028 嵌入式系统 2010-06-06
      一般台式机只有一个串口com1吧,除非你有两个,那就可以同时使用串口烧写和普通串口通信
    6. 这个不是一两句能说清楚的,因为大容量SD卡是另外一个协议,所以要对驱动做很大的修改。
    7. 电容屏 touch驱动 24/9965 分立器件 2010-04-06
      你所指的Touch驱动是不是在WinCE端运行的驱动?若是的话,很简单的,不管触摸屏是电阻屏还是电容屏,对于主机这边都是同样的方法去处理,常见的通讯方式用I2C, SPI或USB,你要看你们触摸屏跟主机之间是采用哪种通讯方式,然后按照WinCE的触摸屏驱动结构实现与触摸屏的数据通讯就可以了。
    8. 不错的贴    gooogleman
    9. 模拟的是时序。 标准的是读寄存器,设置寄存器即可,呵呵。
    10. 触摸屏驱动问题, 无法双击 14/4501 嵌入式系统 2010-03-09
      我的系统的双击功能也难于出来,我的是2450+CE50.
    11. 问一个arm中断的问题 12/7048 ARM技术 2010-01-29
      哈哈
    12. 急需一个批处理程序 7/2734 嵌入式系统 2010-01-27
      哇哈哈,自己瞎捣鼓已经搞出来,批处理还是很强的嘛。 不过也差点把我搞崩溃。。嘿嘿~。。~ 也算接触了下batch了
    13. 6410 SD卡的读问题 高分求助 25/6764 嵌入式系统 2010-01-22
      对了,我的CLK线是我想要的频率,但是我的DATA线一直是高,CMD线也是高,
    14. ASUS的主板USB2.0在用CDC协议的时候有问题,并且有很多用户反应ASUS主板的USB用起来有些问题,不知道这个3.0又会怎样。
    15. wince如何开机自动旋转LCD为竖屏 8/6755 WindowsCE 2010-01-13
      又学到一点,谢谢了
    16. 引用 7 楼 codesnail 的回复: 引用 6 楼 great_bug 的回复: USR模式是没有特权的,比如允许/禁止中断,你在USR模式就做不到 不好意思,我真的能做到
      你能做到,要么利用SWI~~~~~~这其实已经不是USR模式,要么你那所谓的ARM是已经改动了的,那就已经远离了你的话题
    17. wince6.0如何导出bsp安装包 9/3497 WindowsCE 2009-12-16
      你是指sdk吧
    18. 引用 5 楼 rzsheng 的回复: 好的,多谢楼上的。 对讲机可以做到几公里范围内使用,我不知道他们是用的什么方案? 有谁能说说吗?
      可以试一下数传电台,不过前期成本比GPRS还高
    19. TIM5的问题 7/5456 stm32/stm8 2009-12-13
                                       先弄清型号
    20. 补充一下:Variant 是一种特殊的数据类型,可以替换任意一种数据类型,也包括integer、byte类型。

最近访客

< 1/1 >

统计信息

已有70人来访过

  • 芯积分:--
  • 好友:--
  • 主题:7
  • 回复:77

留言

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


现在还没有留言