IceA

    1. STM8SMCFWlibrarybuilder软件 3/3772 stm32/stm8 2010-09-01
                                       这个软件早就有了啊,版主不知道? 顶楼的,这个软件是配置STM8S 马达库的配置参数的,使用它的前提是你要先有STM8的马达库。 将软件生产的配置文件指定放到库下面,再用STVD编译就可以了。 软件很有用,不用满库找h文件该配置,当然很多配置整个工程只要改一次,对刚上手的人理解库很有用。
    2.                                  1. halt();只用这一句能真正的进入停机模式,但不代表功耗最低。必须管脚处于固定状态,才能功耗最低。 2. halt状态的中断唤醒。可以参考如下代码,代码中PC.1接按键,用于唤醒:   // Set PC1 as Input floating with INT   GPIO_Init(GPIOC, GPIO_Pin_1, GPIO_Mode_In_FL_IT);   // Init the pin Interrupt sensitivity - Pin1(PC1)   EXTI_SetPinSensitivity(EXTI_PinNum_1, EXTI_Sensitivity_Fall_Only); 3.为了功耗最低,在进入halt前,如果之前用过AD就需要复位AD(调用ADC_DeInit()),外围电路没接东西就需要让其上拉或者输出固定高、低电平,即可。
    3. 上电后stm32烧掉 21/7101 stm32/stm8 2010-08-15
                                       电压过高?电源问题?芯片问题?电路板问题?去藕电容问题?
    4. IAR无法烧写程序 9/10670 微控制器 MCU 2010-07-11
      1)首先,你要保证你的驱动正确安装了 驱动程序在IAR的安装目录中的diver文件夹下 2)IAR 的设置要正确,在projec->option->FET Debugge设置就可以 3)保证你的程序是正确的 祝你好运,入门是痛苦的,但也是幸福的!加油
    5. wince6.0 重新编译explorer会成为英文的explorer 10/6841 嵌入式系统 2010-06-28
      刚用虚拟机试了一下问题一,确实也存在
    6. avr的bootloader怎么用 12/6676 嵌入式系统 2010-06-18
      帮 顶
    7. 希望各位高手指导 3/2878 嵌入式系统 2010-06-08
      我认为驱动开发是很好的一个方向,时间越长越有含金量,这里经验是很值钱的。
    8. GPRS如何与校园网连接 17/6981 嵌入式系统 2010-06-03
      引用 12 楼 blackfeathers 的回复: GPRS直接封装HTTP协议直接与WEB服务器通信 外面买一个网页空间才10几块钱 免费也有一大把 我这么干的
      愿闻其详
    9. 关于多个设备共享一个物理中断的问题。 78/18914 嵌入式系统 2010-04-30
      友情支持,三颗心关照,up~up~up~!!
    10. 请教各位在职的嵌入式研发工程师 44/13049 嵌入式系统 2010-04-27
      4RFXFWKp0sJe5hOVVeVy 顶啊顶啊 CCBE2ryjYBPHqvhssmN6 顶啊顶啊 y9p5RkyAzNMv5ig6Qs7D 顶起来!
    11. WINCE+GPRS通信有问题? 10/6072 嵌入式系统 2010-04-15
      GPRS模块我是通过电脑串口发送AT指令,它是可以正常的,然客户端和服务器在PC机上也已经通过了,后来将客户端移动到WINCE下,下载到板子上,通信时就是有错误。搞不懂啊?
    12. wince 下用evc来写串口通信。 23/6886 嵌入式系统 2010-02-03
      引用 7 楼 shevsten 的回复: 不封装就直接用CreateFile,ReadFile,WriteFile之类的API写吧
      同意这说法 就用 CreateFile,ReadFile,WriteFile 解决问题了, 不需要别的类
    13. EBOOT 的溢出与NK是无关的
    14. 支持
    15. 6410板子LCD显示有水平方向有明显的波纹 18/8125 嵌入式系统 2010-01-06
      顺便问下。现在屏显示的是16位的,改成24位要改动些什么?那位搞过留下笔记!
    16. 现在传输的DBR结尾出现了“55aa”但是,中间还是大面积的0000。。。 而且时钟一直降不下来,,之前用示波器测过,会在正常值以下的。。同样的代码,现在测的结果是:CMD17时,时钟到了40M。。。明显是不对的 设置时钟的函数如下: DWORD CSDIOControllerBase::SetClockRate(DWORD dwClockRate) {             RETAILMSG(DEBUG_SD, (TEXT("-/-/-/SDHCB SetClockRate start, dwClockRate = 0x%x\n"),dwClockRate));             vm_pSDIReg->SD_APBCLKDIV = 0x2; //LYS  0x10                                      RETAILMSG(DEBUG_SD, (TEXT("In SetClockRate SD_APBCLKDIV = 0x%x,\n"),(DWORD)vm_pSDIReg->SD_APBCLKDIV)); /************ Right now in SEP0718 only support clock 25MHz.If set clk 25Mhz,it will tell kernel error!!! ***************/         DWORD dwMaxSDClk = APBCLK/((DWORD)vm_pSDIReg->SD_APBCLKDIV);            //090404 XJW Add         RETAILMSG(DEBUG_SD, (TEXT("In SetClockRate dwMaxSDClk = 0x%x,\n"),dwMaxSDClk));            UINT32 temp;                                                 //090404 XJW Add         DWORD dwActualRate;         DWORD dwPrescale;             if((dwClockRate < 0) || (dwClockRate > SD_FULL_SPEED_RATE))             {                 RETAILMSG(DEBUG_SD, (TEXT("SDHCDriver:SetClockRate() - invalid clock rate %d !\r\n"), dwClockRate));                 goto DONE;             }              RETAILMSG(DEBUG_SD, (TEXT("dwClockRate=%8d\n"),(DWORD)dwClockRate));             //----- 2. Calculate the clock rate  -----             //         NOTE: Using the prescale value, the clock's baud rate is             //               determined as follows: baud_rate = (PCLK / 2 / (prescale + 1))             //             //               Hence, the prescale value can be computed as follows:             //               prescale = ((PCLK / (2*baud_rate)) - 1 /************ Here dwMaxSDClk is not sure,may call kernel error ***************/             dwPrescale = dwClockRate ? ( (dwMaxSDClk / (2*dwClockRate))) : 0xff;             RETAILMSG(DEBUG_SD, (TEXT("In SetClockRate dwPrescale = 0x%x,\n"),dwPrescale));         if ((dwClockRate(dwMaxSDClk/2)))         {                 RETAILMSG(DEBUG_SD, (TEXT("SDHCDriver:SetClockRate() - 舍入\n")));                 dwPrescale = 0x0;         }             dwActualRate = dwPrescale ? (dwMaxSDClk / ( dwPrescale *2 )) :(dwMaxSDClk);         RETAILMSG(DEBUG_SD, (TEXT("In SetClockRate dwActualRate = 0x%x,\n"),dwActualRate));             // adjust the rate if too high             if( dwActualRate > dwClockRate )             {                         dwPrescale++; // set to next supported lower rate                     // recalculate the actual rate                     dwActualRate = dwPrescale ? (dwMaxSDClk / ( dwPrescale *2 )) :(dwMaxSDClk);                     RETAILMSG(DEBUG_SD, (TEXT("In adjust the rate if too high dwActualRate = 0x%x,\n"),dwActualRate));             }             // adjust the rate if too low             if( dwPrescale > 0xff )             {                 dwPrescale = 0xff; // set to slowest supported rate                    // recalculate the actual rate                     dwActualRate = dwPrescale ? (dwMaxSDClk / ( dwPrescale *2 )) :(dwMaxSDClk);                     RETAILMSG(DEBUG_SD, (TEXT("adjust the rate if too low dwActualRate = 0x%x,\n"),dwActualRate));             }             RETAILMSG(DEBUG_SD, (TEXT("******SetClockRate dwPrescale = 0x%x; dwActualRate = 0x%x\n"), dwPrescale, dwActualRate));             RETAILMSG(DEBUG_SD, (TEXT("Before fClockIsRunning SD_CLKENA = 0x%x\n"),(DWORD)vm_pSDIReg->SD_CLKENA));             BOOL fClockIsRunning = Is_SDI_Clock_Running();               RETAILMSG(DEBUG_SD, (TEXT("After fClockIsRunning SD_CLKENA = 0x%x\n"),(DWORD)vm_pSDIReg->SD_CLKENA));            RETAILMSG(DEBUG_SD, (TEXT(" fClockIsRunning= %d\n"), fClockIsRunning));             //----- 2. Make sure the clock is stopped -----             if( fClockIsRunning )             {             RETAILMSG(DEBUG_SD, (TEXT("adjust the rate if too low Stop_SDI_Clock\n")));                 Stop_SDI_Clock();             }             // set the clock domain //090404 XJW Add         vm_pSDIReg->SD_CTYPE  = 0x0;                                        //set the card width as 1 bits         vm_pSDIReg->SD_CLKDIV =dwPrescale ;                                        //set the clock frequency to less than 400K,25/(2*400K)=32         vm_pSDIReg->SD_CLKSRC = 0x0;                                         //set the clock source         vm_pSDIReg->SD_CMD = 0x80202000;                                  //update_clock_register_only         do         {                 temp = ( vm_pSDIReg->SD_CMD ) & 0x80000000;         }while( temp == 0x80000000 );                     //wait the command taken by CIU                    RETAILMSG(DEBUG_SD, (TEXT("SDHCD:SetClockRate() - Clock rate set to %d Hz\n"), dwActualRate));             if( fClockIsRunning )             {                     RETAILMSG(DEBUG_SD, (TEXT("adjust the rate if too low Start_SDI_Clock\n")));                         Start_SDI_Clock();             }             // remember the current clock rate             m_dwClockRate = dwActualRate; DONE:            RETAILMSG(DEBUG_SD, (TEXT("SDHCD:SetClockRate() -DONE- Clock rate set to %d Hz\n"), dwActualRate));             return m_dwClockRate;     }
    17. 向高手请教:STM32F103RE_EXTI的问题 17/6502 stm32/stm8 2009-12-02
                                       我觉得配置顺序应该是先GPIO,再EXTI,最后NVIC,不然会有误中断。
    18. Wince系统应用程序下拉列表框 15/5645 嵌入式系统 2009-11-27
      引用 3 楼 yuan_nice 的回复: 2楼兄弟 EVC有那个ComboBox控件?
      当然有了,就直接用ComboBox多简单啊
    19. wince内存泄露的问题 21/8001 嵌入式系统 2009-11-12
      引用楼主 m_jy163 的回复: 项目要求在wince下使用RFID读卡器。本程序每隔200毫秒查询有无RFID卡来刷(发起邀请)。 现在,在程序执行期间有内存泄露。非常有规律。可以定位到就是在查询有无RFID卡来刷的某行代码导致泄露。 这行代码是执行一个SDK函数的调用。由于SDK函数的源代码我有,所以我发现该函数不应该导致内存泄露。 现在怀疑是否RFID读卡器驱动程序带来的内存泄露? PS:泄露的内存在程序退出时可以得到回收,可一旦程序重新执行起来,系统的内存使用一下子增加了很多,都超过了之前执行关闭之前的值。—— 不知道这一点是否可以确认为驱动程序内存泄露?
      驱动里有无清缓冲的操作函数呢?有的话调用下,或者在该函数前认为将调用参数初始化一下,看看内存是否会增加,当然这是为了测试内存是不是由于输入参数产生的
    20. 高手帮忙看看这个BSP 15/4287 嵌入式系统 2009-11-03
      引用 12 楼 xilidecai 的回复: 很明显你的错误都是和SD卡有关,这方面我没有尝试过,我想问下,你的BSP是从网上下的,好像是从SD卡启动的嘛?否则你再看看SD卡的驱动,毕竟自己还没有做到这里,你再让高手指点一二吧。
      谢谢 你说的没错我是从网上下的BSP并且是从SD启动,我再弄弄SD驱动看看

最近访客

< 1/1 >

统计信息

已有122人来访过

  • 芯积分:--
  • 好友:--
  • 主题:9
  • 回复:72

留言

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


现在还没有留言