lustring

    1. 惭愧啊,st网站上想找点东西太难了 19/6055 stm32/stm8 2011-02-26
                                       一样
    2. stm32的通用定时器输出比较 16/8936 stm32/stm8 2010-07-27
      参照3.0库写的例程为何只能进入TIM_IT_Update而不能进入TIM_IT_CC1 右边对应3.0库代码: void Tim2_Init(void) { TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure; TIM_OCInitTypeDef  TIM_OCInitStructure;   TIM_TimeBaseStructure.TIM_Period = 5000;// 1us * 50 000 = 50ms;TIM_TimeBaseStructure.TIM_Period = 65535;   TIM_TimeBaseStructure.TIM_Prescaler = 35;// 36mhz /36 = 1mhz, =1us  TIM_TimeBaseStructure.TIM_Prescaler = 0;   TIM_TimeBaseStructure.TIM_ClockDivision = 0;//  TIM_TimeBaseStructure.TIM_ClockDivision = 0;   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;   TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);//  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);   /* Prescaler configuration */   TIM_PrescalerConfig(TIM2, 256, TIM_PSCReloadMode_Immediate);// TIM_PrescalerConfig(TIM2, 4, TIM_PSCReloadMode_Immediate);    /* Output Compare Timing Mode configuration: Channel1 */   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   TIM_OCInitStructure.TIM_Pulse = 500;// TIM_OCInitStructure.TIM_Pulse = CCR1_Val;  __IO uint16_t CCR1_Val = 49152;   TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;   TIM_OC1Init(TIM2, &TIM_OCInitStructure);   TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Disable);   /* TIM IT enable */   TIM_ITConfig(TIM2, TIM_IT_CC1 | TIM_IT_Update, ENABLE);//  TIM_ITConfig(TIM2, TIM_IT_CC1 | TIM_IT_CC2 | TIM_IT_CC3 | TIM_IT_CC4, ENABLE);我没有使用cc2,cc3,cc4 /* TIM2 enable counter */   TIM_Cmd(TIM2, ENABLE); } 中断处理 void TIM2_IRQHandler(void) {    uint8_t b;    b=10;    b=b+1;    #ifdef _DEBUG_    printf("TIM2_IRQHnadler Success!\n");    #endif if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) {   #ifdef _DEBUG_   printf("TIM2_IRQHnadler_Update Success!\n");   #endif   TIM_ClearITPendingBit(TIM2, TIM_IT_Update); } if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET) {   #ifdef _DEBUG_   printf("TIM2_IRQHnadler_CC1 Success!\n");   #endif   TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);   TIM_Cmd(TIM2, DISABLE);    } } keil4.12 调试结果 ex_timebase.JPG (80.05 KB) 下载次数:0 2010-7-27 12:18
    3. HEX文件下载到单片机出错怎么办 9/4564 stm32/stm8 2010-06-10
                                       我买的 新 芯片啊  我是把程序 生成的HEX文件烧写进去
    4. void displayWeek(UCHAR week) {     UCHAR i;     week--; //因为weekTable数组是从0开始的,故减去1     writeCmd(0x80 + 0x0d); //初始化地址指针     writeCmd(0x0c); //不显示光标     for(i = 0; i < 3; i++)         writeData(weekTable[week][i]);    } /*函数功能:刷新显示屏幕上任意两个数字       *参    数:类型:unsinged char所要显示二个数字的数值    */ void displayTime(UCHAR first, UCHAR second) {     writeCmd(0x0c); //不显示光标     writeData(first + 48);  //转成数字相对应的ASCII值       writeData(second + 48); } /*函数功能:更新时间变量及刷新屏幕时间显示 *参数    :所要显示的时间变量的地址,displayOn为0时仅更新时间变量   */ void display(UCHAR *seconds, UCHAR *minute, UCHAR *hour, UCHAR *day, UCHAR *week, UCHAR *month, bit displayOn) {     timeUpdate(seconds, minute, 59, 0);     timeUpdate(minute, hour, 59, 0);     timeUpdate(hour, day, 23, 0);     if(*day == 0) //每个月的第一天再往后减一,即回到上个月的最后一天     {         if(*month == 1)  //如果一月份的第一天         {             year--;    //回到去年的最后一天             *day = 31;             *month = 12;         }         else  //除一月份外每个月的第一天         {                if(leapYear)  //把日改为上个月的最后一天                 *day = monthTable[1][*month - 2];             else                 *day = monthTable[0][*month - 2];             (*month)--;  //月减一         }     }     leapYear = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);     processDayMon(day, month); //每月的最后一天再往前加一天              if(*month == 13) //每年的最后一个月再往前加一个月       {         *month = 1;         year++;     }     else if(*month == 0)  //每年的第一个月再往后减一个月     {         *month = 12;         year--;     }                      //timeUpdate(month, &year, 12, 1);     leapYear = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);     if((*week = getWeek(*day, *month, year)) == 0)         *week = 7;     if(displayOn)        {         writeCmd(0x80 + 0x4a); //地址指针移到秒的位置         displayTime(*seconds / 10, *seconds % 10); //更新秒的显示         writeCmd(0x80 + 0x47); //地址指针移到分钟的位置         displayTime(*minute / 10, *minute % 10); //更新分钟的显示         writeCmd(0x80 + 0x44); //地址指针移到小时的位置         displayTime(*hour / 10, *hour % 10);         writeCmd(0x80 + 0x0a); //地址指针移到日的位置         displayTime(*day / 10, *day % 10);         displayWeek(*week); //更新星期          writeCmd(0x80 + 0x07); //地址指针移到月的位置         displayTime(*month / 10, *month % 10);         if(year % 100 == 0) //当年的前两位发生改变时,刷新年的前两位         {             writeCmd(0x80 + 0x02); //地址指针移到年的高二位             displayTime(year % 1000, year / 100 % 10);         }         writeCmd(0x80 + 0x04); //地址指针移到年的低二位         displayTime(year % 100 / 10, year % 10);     } } /*函数功能:当相应的时间单位超出范围时对其进行更新处理     *参数  : value:所要判断的时间变量的地址,nextValue:该时间变量的下一级单位时间的地址,             largest:*value对应的时间单位的所能显示的最大值,如月份为12,分钟为59             smallest:*value对应的时间单位的所能显示的最小值,如月份为1,分钟为0 */ /*小时分钟秒这些我是用UCHAR类型来表示的,但年我是用unsigned int类型来表示的   *这样子对于年怎么实现参数的传递呢?      *我用timeUpdate(&month, (char*)year,)   *或者把参数原型改成 timeUpdate(UCHAR *value, UINT *value,,,);   *然后把month强制转成UINT *型..timeUpdta((UINT*)&month, &year...);   编译通过,但运行结果是错的. */ void timeUpdate(UCHAR *value, UCHAR *nextValue, UCHAR largest, UCHAR smallest) {     largest++; //让相应的时间单位所能显示的最大值加1     smallest--;     if(*value == largest) //当对应的时间单位超出所能显示的最大值时       {         *value = smallest; //低一级时间单位回到最小值         (*nextValue)++;    //高一级时间单位加1                                         }     else if(*value == smallest) //对应的时间单位的最小值再往下减一时      {         *value = largest;  //低一级时间单位回到最大值         (*nextValue)--;    //高一级时间单位减1     } } /*函数功能:算出某年某月某日是星期几 *返 回值 :返回0,代表星期天,其余返回值代表星期几 */   UCHAR getWeek(UCHAR day, UCHAR month, UINT year) {     UINT temp, yearTemp;     UCHAR i;         temp = 0; //必须初始化temp的值,否则出错了     yearTemp = year - 1;     for(i = 0; i < month - 1; i++)         if(leapYear)             temp += monthTable[1][i];         else             temp += monthTable[0][i];     temp += yearTemp + yearTemp / 4 - yearTemp / 100 + yearTemp / 400 + day;     return (temp % 7);   } /*函数功能:每个月的最后一天再往前加一天,对月日进行处理   *参    数:所要处理的日、月的地址 *返回 值:如果是每个月的最后一天,返回值为1,否则为0 */ bit processDayMon(UCHAR *day, UCHAR *month) {     if(leapYear && monthTable[1][*month - 1] < *day  || monthTable[0][*month - 1] < *day)     {         *day = 1;         (*month)++;         return 1;        }     return 0;    } /*函数功能:刷新计时器时间变量及其屏幕显示 *参数    :相对应的时间的地址 */ void displayCounter(UCHAR *minute, UCHAR *seconds, UCHAR *tenMs) {     if(*tenMs == 100)     {         (*seconds)++;         *tenMs = 0;     }     if(*seconds == 60)     {         (*minute)++;         *seconds = 0;     }     if(*minute == 60)         *minute = 0;        writeCmd(0x80 + 0x44);     displayTime(*minute / 10, *minute % 10);     writeData(':');     displayTime(*seconds / 10, *seconds % 10);     writeData(':');     displayTime(*tenMs / 10, *tenMs % 10);     } /*函数功能:恢复时钟界面 */ void recoverClock() {     writeCmd(0x01); //清屏     writeCmd(0x80 + 0x06);     writeData('-');     writeCmd(0x80 + 0x09);        writeData('-');     writeCmd(0x80 + 0x02);     displayTime(year / 1000, year / 100 % 10);     writeCmd(0x80 + 0x46);     writeData(':');     writeCmd(0x80 + 0x49);     writeData(':'); }复制代码
    5. 哪位大侠帮帮我 3/2547 嵌入式系统 2010-05-19
      实在不行,到市场上去买一个。几十块钱 然后逆向
    6. 关于KEIL的问题 13/6306 嵌入式系统 2010-01-29
      C:\Keil\C51\BIN\ledkey    应该是和protenus 联合仿真时需要的吧,重装Keil。
    7. AVR串口 16/5499 嵌入式系统 2010-01-20
      这个只能是代码的问题,查一下那个MCU的发送或者接收的代码吧
    8. 更多嵌入式系统技术资料可以上海同嵌入式培训中心网站索取
    9. wince 6.0下使用什么来解码? 14/4093 嵌入式系统 2009-12-21
      关注下`
    10. 引用 1 楼 great_bug 的回复: 声明和函数的定义不完全一致....."ptos".....改成一样的试试....
      修改1:把OSTaskStkInit定义中ptos的类型改为OS_STK * 后重新编译,问题依旧 修改2:把OSTskStkInit的定义和声明全部改为void * 后仍然没有解决问题。
    11. 关于wince下USB HOST驱动问题 4/4228 嵌入式系统 2009-12-08
      在SOURCE中添加:     $(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\usbd.lib \     $(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\usbclient.lib \ 就可以通过了。
    12.                                    请问 Chinp_Init();这个函数是什么函数?好像不是库函数啊~~
    13. 关于verilog功能仿真的实现 4/3935 嵌入式系统 2009-11-15
      新手上路,求各位大虾帮助!感激不尽!
    14. 在evc下使用opengl es 3/3377 嵌入式系统 2009-11-11
      我已经做好了
    15. 伟福仿真器使用问题 21/9190 嵌入式系统 2009-10-26
      引用 5 楼 duojinian 的回复: 不建议使用第三方的汇编编译器。没有比芯片厂商更了解自己的芯片的内核的。 再大的公司都有自己的免费的汇编IDE。象AVR的AVR studio。HT的HT IDE3000。PIC的MPLAB等。 如果用c可以选择第三方的汇编IDE。像KeilC, ICC AVR,IAR AVR等。
      我在那里边试了51的汇编程序能用,就是在做Lab2000里的8086的实验的时候不能用
    16. 大家帮忙看一下这个例程 4/3157 stm32/stm8 2009-10-26
                                       这个程序用了一个标准输入输出的库,寒
    17. ..........还有....对FAT区的写入是不是会远多于数据区? 这个问题是怎样解决的? (Flash要追求均匀磨损的吧?)
    18. 流驱动的问题 9/2653 嵌入式系统 2009-10-13
      学习了!!
    19. 视频子窗体与置顶窗体的冲突问题,急! 2/2983 嵌入式系统 2009-09-26
      帮顶一下。
    20. ce4.2支持 22寸宽屏? 18/6013 嵌入式系统 2009-09-25
      要看是哪个CPU吧

最近访客

< 1/1 >

统计信息

已有125人来访过

  • 芯积分:--
  • 好友:--
  • 主题:5
  • 回复:55

留言

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


现在还没有留言