历史上的今天
返回首页

历史上的今天

今天是:2024年09月10日(星期二)

正在发生

2018年09月10日 | STM8L之低功耗模式

2018-09-10 来源:eefocus

一、简介

本文介绍STM8L系列如何实现:默认低功耗模式,用按键实现唤醒并发射红外信号,随即又进入低功耗模式。



二、实验平台

编译软件:IAR for STM8 1.42.2

硬件平台:stm8l101f3p6开发板

仿真器:ST-LINK

库函数版本:STM8L_STMTouch_Lib_V1.1.0




三、版权声明


博主:甜甜的大香瓜

声明:喝水不忘挖井人,转载请注明出处。

原文地址:http://blog.csdn.NET/feilusia

联系方式:897503845@qq.com

香瓜BLE之CC2541群:127442605

香瓜BLE之CC2640群:557278427

香瓜BLE之Android群:541462902

香瓜单片机之STM8/STM32群:164311667

甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i


四、基础知识

1、STM8L有几个模式?

答:

1)非低功耗模式(1个)

Run mode(运行模式)


2)低功耗模式(3个)

Wait(等待模式)、Active-halt(活跃停机模式)、Halt(停机模式)。


2、STM8L低功耗的3个模式有什么区别?

答:


简单地来说,就是:

1)wait(等待模式):时钟关闭、外设可用。通过中断、外部中断、复位,能退出本模式。

2)Active-halt(活跃停机模式):时钟关闭、外设关闭、RTC开启。通过RTC中断、外部中断、复位,能退出本模式。

3)Halt(停机模式)(功耗最低):时钟关闭、外设关闭。通过外部中断、复位,能退出本模式。


另外,上图同时说明了默认上电时是运行模式,在运行模式时可通过如下方法降低功耗:

1)降低时钟频率。

2)关闭没用的外设时钟。

3)(香瓜补充)无用的IO口配置为输出低。


3、进入低功耗模式与低功耗唤醒的流程是如何的?

答:

1)进入低功耗模式的流程

①关闭外设时钟。

②所有IO设置为输出低(注意低电平使能的得设置为输出高)。

③初始化中断口的IO。

④时钟频率降至最低(2M)。

⑤打开中断总开关。

⑥调用停机模式的函数。


2)低功耗唤醒的流程

①初始化系统时钟。

②初始化用到的外设。


五、实验前提

在进行本文步骤前,请先阅读并实现以下博文:

1、《STM8L之红外发射(PWM产生38K信号)》:http://blog.csdn.net/feilusia/article/details/53417291

2、《STM8L之定时器3的精确延时》:http://blog.csdn.net/feilusia/article/details/53407818

3、《STM8L之timer2产生PWM》:http://blog.csdn.net/feilusia/article/details/53403015

4、《STM8L之按键中断》:http://blog.csdn.net/feilusia/article/details/53372929



六、实验步骤

1、工程中添加自己写的低功耗的驱动

1)写一个驱动GUA_LowPowerConsumption.c(存放在工程的USER文件夹中)


//******************************************************************************                          

//name:             GUA_LowPowerConsumption.c             

//introduce:        低功耗驱动      

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06     

//******************************************************************************  

#include "stm8l10x.h"

#include "GUA_LowPowerConsumption.h"

 

#include "GUA_Key.h"

#include "GUA_Key_2.h"

#include "GUA_Timer2_PWM.h"

#include "GUA_Timer3.h" 

#include "GUA_Clk.h"

/*********************宏定义************************/

#ifndef U8  

typedef unsigned char U8;  

#endif  

 

#ifndef U16  

typedef unsigned short U16;  

#endif  

 

#ifndef U32  

typedef unsigned long U32;  

#endif  

 

/*********************内部变量************************/   

static u8 sGUA_LowPowerConsumption_State = GUA_LOW_POWER_CONSUMPTION_STATE_HALT; 

 

/*********************内部函数声明************************/ 

static void GUA_LowPowerConsumption_Halt_Peripheral(void);

static void GUA_LowPowerConsumption_Halt_GPIO_Default(void);

static void GUA_LowPowerConsumption_Halt_GPIO_Interrupt(void);

static void GUA_LowPowerConsumption_Halt_InterruptSwitchOn(void);

static void GUA_LowPowerConsumption_Halt_Enable(void);

 

static void GUA_LowPowerConsumption_Active_Clk(void);

static void GUA_LowPowerConsumption_Active_Peripheral(void);

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Halt_PeripheralCLK             

//introduce:        关闭外设时钟          

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

static void GUA_LowPowerConsumption_Halt_Peripheral(void)

{

  //时钟失能

  CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, DISABLE);

  CLK_PeripheralClockConfig(CLK_Peripheral_TIM3, DISABLE);

  CLK_PeripheralClockConfig(CLK_Peripheral_TIM4, DISABLE);

  CLK_PeripheralClockConfig(CLK_Peripheral_I2C, DISABLE);

  CLK_PeripheralClockConfig(CLK_Peripheral_SPI, DISABLE);

  CLK_PeripheralClockConfig(CLK_Peripheral_USART, DISABLE);

  CLK_PeripheralClockConfig(CLK_Peripheral_AWU, DISABLE);

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Halt_GPIO_Default             

//introduce:        所有IO口设置为输出低(注意低电平使能的得设置为输出高)          

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

static void GUA_LowPowerConsumption_Halt_GPIO_Default(void)

{

  //IO配置为输出

  GPIO_Init(GPIOA, GPIO_Pin_2 | GPIO_Pin_3, GPIO_Mode_Out_PP_High_Fast); 

  GPIO_Init(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 |GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 |GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7, GPIO_Mode_Out_PP_High_Fast); 

  GPIO_Init(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 |GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4, GPIO_Mode_Out_PP_High_Fast); 

 

  //IO配置为输出低(注意低电平使能的得设置为输出高)

  GPIO_WriteBit(GPIOA, GPIO_Pin_2 | GPIO_Pin_3, RESET);

  GPIO_WriteBit(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 |GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 |GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7, RESET);  

  GPIO_WriteBit(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 |GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4, RESET);  

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Halt_GPIO_Interrupt             

//introduce:        初始化中断口的IO          

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

static void GUA_LowPowerConsumption_Halt_GPIO_Interrupt(void)

{

  //按键初始化

  GUA_Key_Init();

 

  //按键2初始化

  GUA_Key_2_Init();

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Halt_Clk             

//introduce:        时钟配置为2M          

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

static void GUA_LowPowerConsumption_Halt_Clk(void)

{

  //寄存器重置 

  CLK_DeInit();              

  

  //时钟8分频,2MHz

  CLK_MasterPrescalerConfig(CLK_MasterPrescaler_HSIDiv8);       

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Halt_InterruptSwitchOn             

//introduce:        打开中断总开关          

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

static void GUA_LowPowerConsumption_Halt_InterruptSwitchOn(void)

{

  //开全局中断 

  asm("rim"); 

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Halt_Enable             

//introduce:        进入停机模式          

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

static void GUA_LowPowerConsumption_Halt_Enable(void)

{

  //进入停机模式

  halt();

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Active_Clk             

//introduce:        初始化时钟        

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

static void GUA_LowPowerConsumption_Active_Clk(void)

{

  //晶振初始化

  GUA_CLK_Init();

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Active_Peripheral             

//introduce:        初始化外设         

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

static void GUA_LowPowerConsumption_Active_Peripheral(void)

{

  //定时器2的PWM初始化

  GUA_Timer2_PWM_Init();  

 

  //定时器3的初始化

  GUA_Timer3_Init(); 

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Get             

//introduce:        低功耗读取状态函数          

//parameter:        none    

//return:           GUA_LOW_POWER_CONSUMPTION_STATE_ENABLE or GUA_LOW_POWER_CONSUMPTION_STATE_DISABLE           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

U8 GUA_LowPowerConsumption_Get(void)

{

   return sGUA_LowPowerConsumption_State;

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Set             

//introduce:        低功耗设置状态函数          

//parameter:        nGUA_LowPowerConsumption_State: GUA_LOW_POWER_CONSUMPTION_STATE_ENABLE or GUA_LOW_POWER_CONSUMPTION_STATE_DISABLE    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

void GUA_LowPowerConsumption_Set(U8 nGUA_LowPowerConsumption_State)

{

   sGUA_LowPowerConsumption_State = nGUA_LowPowerConsumption_State;

}

 

//******************************************************************************              

//name:             GUA_LowPowerConsumption_Cmd             

//introduce:        低功耗控制函数          

//parameter:        nGUA_LowPowerConsumption_State: GUA_LOW_POWER_CONSUMPTION_STATE_ENABLE or GUA_LOW_POWER_CONSUMPTION_STATE_DISABLE    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                    

//******************************************************************************  

void GUA_LowPowerConsumption_Cmd(U8 nGUA_LowPowerConsumption_State)

{

  //开启低功耗

  if(nGUA_LowPowerConsumption_State == GUA_LOW_POWER_CONSUMPTION_STATE_HALT)

  {

    //关闭外设时钟

    GUA_LowPowerConsumption_Halt_Peripheral();

    

    //所有IO口设置为输出低(注意低电平使能的得设置为输出高)

    GUA_LowPowerConsumption_Halt_GPIO_Default();

    

    //初始化中断口的IO

    GUA_LowPowerConsumption_Halt_GPIO_Interrupt();

    

    //时钟配置为2M

    GUA_LowPowerConsumption_Halt_Clk();

    

    //打开中断总开关

    GUA_LowPowerConsumption_Halt_InterruptSwitchOn();    

    

    //置位标志位

    GUA_LowPowerConsumption_Set(GUA_LOW_POWER_CONSUMPTION_STATE_HALT); 

    

    //进入停机模式

    GUA_LowPowerConsumption_Halt_Enable();   

    

/*******************************************************************/

    

    //初始化时钟

    GUA_LowPowerConsumption_Active_Clk();

    

    //初始化外设

    GUA_LowPowerConsumption_Active_Peripheral();

    

    //置位标志位

    GUA_LowPowerConsumption_Set(GUA_LOW_POWER_CONSUMPTION_STATE_ACTIVE);  

  }

  //关闭低功耗

  else

  {

 

  }  

}


2)写一个驱动头文件GUA_LowPowerConsumption.h(存放在工程的USER文件夹中)


//******************************************************************************                          

//name:             GUA_LowPowerConsumption.h             

//introduce:        低功耗驱动的头文件      

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06    

//******************************************************************************  

#ifndef _GUA_LOW_POWER_CONSUMPTION_H_ 

#define _GUA_LOW_POWER_CONSUMPTION_H_

 

/*********************宏定义************************/

//低功耗控制宏

#define GUA_LOW_POWER_CONSUMPTION_STATE_HALT            0

#define GUA_LOW_POWER_CONSUMPTION_STATE_ACTIVE          1

 

/*********************外部函数声明************************/  

unsigned char GUA_LowPowerConsumption_Get(void);

void GUA_LowPowerConsumption_Set(unsigned char nGUA_LowPowerConsumption_State);

void GUA_LowPowerConsumption_Cmd(unsigned char nGUA_LowPowerConsumption_State);

 

#endif


3)工程中添加GUA_LowPowerConsumption.c

4)添加驱动的路径



$PROJ_DIR$\..\USER  

注意USER文件夹是与“Project”等文件夹同级的自定义文件,用于存放香瓜写的代码。



2、应用层中调用


1)main.c


//******************************************************************************                          

//name:             main.c             

//introduce:        主函数      

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06     

//******************************************************************************  

#include "stm8l10x.h"

#include "main.h"

#include "GUA_Key.h"

#include "GUA_Key_2.h"

#include "GUA_Timer2_PWM.h"

#include "GUA_Infrared_Send.h"

#include "GUA_Timer3.h" 

#include "GUA_Clk.h"

#include "GUA_LowPowerConsumption.h"

 

/*********************宏定义************************/

#ifndef U8  

typedef unsigned char U8;  

#endif  

  

#ifndef U16  

typedef unsigned short U16;  

#endif  

 

#ifndef U32  

typedef unsigned long U32;  

#endif  

 

#ifndef int32  

typedef signed long int32;  

#endif 

/*********************外部变量************************/ 

U8 gGUA_Function = 0;                                //功能码

 

/*********************内部函数声明************************/ 

static void GUA_Init(void);

//******************************************************************************              

//name:             GUA_TEST             

//introduce:        测试          

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                       

//******************************************************************************  

static void GUA_TEST(void)

{  

 

}

 

 

//******************************************************************************              

//name:             GUA_Init             

//introduce:        初始化          

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                      

//******************************************************************************  

static void GUA_Init(void)

{

  //关全局中断  

  asm("sim");                         

  

  //晶振初始化

  GUA_CLK_Init();

 

  //按键初始化

  GUA_Key_Init();

 

  //按键2初始化

  GUA_Key_2_Init();

 

  //定时器2的PWM初始化

  GUA_Timer2_PWM_Init();  

 

  //定时器3的初始化

  GUA_Timer3_Init(); 

  

  //开全局中断 

  asm("rim");  

}

 

//******************************************************************************              

//name:             main             

//introduce:        主函数          

//parameter:        none    

//return:           none           

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06                       

//******************************************************************************  

void main(void)

{

  //初始化

  //GUA_Init();  

  

  //测试

  //GUA_TEST();

  

  while(1)

  {

      switch(gGUA_Function)

      {

          //空闲

          case FUNC_IDLE_EVENT: 

          {           

              //低功耗模式

              if(GUA_LowPowerConsumption_Get() == GUA_LOW_POWER_CONSUMPTION_STATE_HALT)

              {

                GUA_LowPowerConsumption_Cmd(GUA_LOW_POWER_CONSUMPTION_STATE_HALT);

              }

              //正常模式

              else

              {

                GUA_LowPowerConsumption_Cmd(GUA_LOW_POWER_CONSUMPTION_STATE_ACTIVE);              

              }

              

              break;          

          }

          

          //短按键处理

          case FUNC_GUA_KEY_SHORT_EVENT: 

          {

              //发送红外键值

              GUA_Infrared_Send(0x00FF00FF);           

 

              //置位低功耗标志位

              GUA_LowPowerConsumption_Set(GUA_LOW_POWER_CONSUMPTION_STATE_HALT); 

              

              //返回空闲状态

              gGUA_Function = FUNC_IDLE_EVENT;  

              break;               

          }       

 

          

          //短按键2处理

          case FUNC_GUA_KEY2_SHORT_EVENT: 

          {

              //发送红外键值

              GUA_Infrared_Send(0x00FF02FD);            

 

              //置位低功耗标志位

              GUA_LowPowerConsumption_Set(GUA_LOW_POWER_CONSUMPTION_STATE_HALT); 

              

              //返回空闲状态

              gGUA_Function = FUNC_IDLE_EVENT;  

              break;               

          }       

  

          //其他

          default: 

          {

              //返回空闲状态

              gGUA_Function = FUNC_IDLE_EVENT;                                     

              break;           

          }                     

      }                 

  }

}


2)main.h


//******************************************************************************                          

//name:             main.h             

//introduce:        主函数的头文件      

//author:           甜甜的大香瓜                   

//email:            897503845@qq.com       

//QQ group          香瓜单片机之STM8/STM32(164311667)                    

//changetime:       2016.12.06      

//******************************************************************************  

#ifndef _MAIN_H_

#define _MAIN_H_

 

/*********************宏定义************************/   

//主轮询的宏

#define FUNC_IDLE_EVENT                                 0x00    //空闲

#define FUNC_GUA_KEY_SHORT_EVENT                        0x10    //短按键处理事件

#define FUNC_GUA_KEY_LONG_EVENT                         0x11    //长按键处理事件

#define FUNC_GUA_KEY2_SHORT_EVENT                       0x12    //短按键2处理事件

#define FUNC_GUA_KEY2_LONG_EVENT                        0x13    //长按键2处理事件

/*********************外部变量************************/

extern u8 gGUA_Function;                                        //功能码

 

 

#endif


七、实验结果


将万用表的电流档串入VCC的跳线中,待机时为1uA~2uA之间跳变。


当按下按键发射红外时,电流值瞬间为1mA~2mA,随后又降低至待机状态。




对比datasheet的数据:“Halt: 0.3 µA、Active-halt: 0.8 µA、Dynamic Run:150 µA/MHz”。


比文档上的略高些,但已实现基本的低功耗。




因此,实验成功。


推荐阅读

史海拾趣

EQCOLOGIC公司的发展小趣事

在EQCOLOGIC公司的发展历程中,曾经面临过激烈的市场竞争。当时,市场上已经存在多种类似的电子材料,而EQCOLOGIC的产品虽然性能优越,但价格相对较高。为了打开市场,EQCOLOGIC决定调整策略,与一些大型电子制造商建立合作关系,共同开发基于其材料的高端电子产品。通过不断的努力和创新,EQCOLOGIC的产品逐渐得到了市场的认可,公司也逐步实现了市场突破。

Anpec(茂达)公司的发展小趣事

凭借卓越的产品质量和良好的市场口碑,茂达电子在国内电源模拟IC设计领域的地位逐渐提升。公司不仅在国内市场取得了显著的成绩,还积极拓展海外市场,与众多国际知名企业建立了稳定的合作关系。茂达电子的产品广泛应用于计算机、通信和消费者等领域,为全球客户提供了高质量的电源解决方案。

DuPont公司的发展小趣事

随着半导体技术的兴起,DuPont公司敏锐地捕捉到了这一领域的发展潜力。公司投入大量资源,致力于半导体材料的研发和生产。通过不断的技术创新,DuPont成功开发出了一系列高性能的半导体材料,如高纯度硅材料、光刻胶等。这些材料在半导体制造过程中发挥着至关重要的作用,极大地推动了半导体技术的进步和产业的发展。

Dielectric Laboratories公司的发展小趣事

为了进一步拓展业务,DLI于1955年加入了知名的都福集团(Dover Corporation)。通过这一合作,DLI获得了更多的资金支持和市场资源,加速了公司的发展步伐。同时,都福集团也为DLI提供了更广阔的发展平台,使其能够接触到更多的行业前沿技术和市场信息。

Coors Components Inc公司的发展小趣事

随着电子行业的不断发展,智能化、绿色化成为了行业的新趋势。Coors Components Inc公司敏锐地捕捉到这一趋势,加大了对智能电子产品和环保材料的研发力度。通过不断推出符合市场需求的新产品,公司成功抓住了行业发展的机遇,实现了快速发展。

Alan Industries Inc公司的发展小趣事

随着国内市场的饱和,Alan Industries Inc.开始将目光投向海外市场。公司制定了国际化发展战略,通过设立海外分公司、参加国际展会等方式,积极开拓国际市场。同时,公司还加强了对国际市场的调研和分析,根据不同地区的市场需求和文化特点,推出了针对性的产品和服务。这些努力使得公司在国际市场上也取得了不俗的成绩。

问答坊 | AI 解惑

DIY发烧友能够自己制作简易的LED节能灯附上LED灯制作资料及LED节能灯电路图

replyreload += \',\' + 372438;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

各位大侠帮忙看一下 在keil 中code 的作用

unsigned char code seg[]={0,1,2,3,4,5,6,7}; 我想知道加code与不加的区别?…

查看全部问答>

一个有挑战的问题

C:\\Documents and Settings\\Administrator\\桌面\\采样.jpg 如图,如果我想把第一根线的采样作为一个时钟,只在上升沿采样,以第一个脚每次的八次跳变为一个周期,采样第二个脚和第三个脚,读出一个byte.记录下来或者从串口输出或者存储。请各位 ...…

查看全部问答>

指令出错的问题

下面这段程序 是向12864液晶写如一段汉字 可是在编译到              flag=\"XBYTE\"[comre]&0x80;     XBYTE[comwr]=command;   时  系统总提示语法错误 因为本人是 ...…

查看全部问答>

新手学ARM9+win CE,选择什么型号的学习板好?

学习单片机(C程序设计)已1年多,参加过设计比赛,做过1-2块实验板,51,avr算是入门了,Delphi算是入门,毕业设计用过,C++仅用过消息和线程,MFC的,还没入门,现在刚出来工作(双休),工作性质是应用电子为主的,但是我一直喜欢研发,想学习AR ...…

查看全部问答>

跪求:伟福与mcu\cpld上的2051单片机通信仿真为什么一直是通信错误呢?

各位大虾,小弟现在碰到一个棘手的问题,在用伟福与2051单片机进行仿真时,将串口接在伟福的串口上,并且用了一个40针转20针的转换器,因2051只有20个引脚,还去电子市场去配了一个,但是当我插好线之后,打开伟福后,开始仿真器设置时确一直跳出: ...…

查看全部问答>

带kitl特性内核的启动问题!!!

使用优龙提供的bsp bvdmain,将kitl特性去掉,生成的NK.bin下载到开发板YL-P270,Windows ce可以正常启动,之后我编译了一个带kitl特性的内核,下载到开发板之后串口打印如下: Image start: 0x96CB8000 length: 0x01B17BD4 cache location: 0x9 ...…

查看全部问答>

关于如何在裸机上运行程序,哪位来帮帮忙

我的意思是:我写了一个程序,然后编译后,如何“放到”光盘里(我有刻录机),然后在重启之后 CPU就运行我的程序? 也许说得还不清楚,我补充一下: 我用nasm -o 编译为纯二进制文件,我想把这个二进制文件“放到”光盘里,但是不知道该怎样“ ...…

查看全部问答>

为啥eeworld对嵌入式领域很不重视????

论坛支持不够,博客里分类没有。 eeworld是从大学一直以来都喜欢上的网站, 可是因为对嵌入式支持太差,渐行渐远。。。。 哎~~~ 嵌入式开发里,最好有ARM,dsp等分类。…

查看全部问答>