原创 STM32的C++类成员函数做中断函数的三个主要步骤

2008-2-10 04:41 5116 6 6 分类: MCU/ 嵌入式
hotpower 发表于 2008-2-10 04:34 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

2楼: STM32的C++类成员函数做中断函数的三个主要步骤


1.在类中声明ISP()
class SystemObj
{
public:
//................
//类成员函数做中断函数
    static void SysTickHandler(void);//必须声明为静态函数!!!
public:
    volatile unsigned int RamTest;
    union
    {
        volatile unsigned char WorkFlag;
        struct
        {
            unsigned char Watchdog:         1;//允许喂狗
            unsigned char SysTickFlag:      1;//节拍中断
            unsigned char MainLoopFlag:     1;//主循环运行
            unsigned char MainWatchdog:     1;//主循环喂狗
        };
    };
};

2.构造类成员函数
//节拍中断服务程序(类成员函数做中断函数)
//static//此处不能加static!!!
//类成员变量必须指明实际的类!!!(System.SysTickFlag 不能写成SysTickFlag )
void SystemObj::SysTickHandler(void)
{
    Keyboard.Exec();//"零耗时键盘"消抖及运行命令
    System.SysTickFlag = true;//通知主循环节拍中断正常工作
}

3.在stm32f10x_vector.c内的中断向量表内填写需要中断的类成员函数地址
const __root intvec_elem __vector_table[] =
{
  { .__ptr = __sfe( "CSTACK" ) },
  __program_start,
  NMIException,
  HardFaultException,
  MemManageException,
  BusFaultException,
  UsageFaultException,
  0, 0, 0, 0,            /* Reserved */
  SVCHandler,
  DebugMonitor,
  0,                      /* Reserved */
  PendSVC,
//  SysTickHandler,
  &SystemObj::SysTickHandler,
//不能用下列写法
//  &System.SysTickHandler,
  WWDG_IRQHandler,
  PVD_IRQHandler,
//..........................
};

注意: &SystemObj::SysTickHandler替换了原先的SysTickHandler
即饶过了stm32f10x_it.c内的空函数SysTickHandler()
用SystemObj::SysTickHandler()替代为新的节拍中断函数


200821043111632.gif

文章评论0条评论)

登录后参与讨论
相关推荐阅读
雁塔菜农 2012-04-05 17:51
2012年度新唐Cortex-M0助学开发套件有约束条件赠送申报贴
2012年度新唐Cortex-M0助学套件从4月起每月有约束条件发放16套。 申报人必须是21ic或 EDNC 会员 并具备1月的会龄。 申报时必须注明“遵守约束条件,缴纳250元订金,上...
雁塔菜农 2012-04-05 17:04
2012年度Cortex-M0助学园地推广框图
...
雁塔菜农 2012-04-01 17:59
2012年度Cortex-M0助学园地奖励计划细则
抢楼请点击:菜地公告:即日起创建《菜农Cortex-M0助学园地》(盖楼入口) 每月10号和25号的下午2:50进行2次抢楼,规则同去年12月的疯狂抢楼活动。 奖品由21IC、北航、广州迪圣...
雁塔菜农 2012-02-03 08:19
菜农谋略:搞定牛人宋俊德,对女牛人孙昌旭说:“记住,俺是雁塔菜农~~~ ”
http://www.baidu.com/s?wd=%B2%CB%C5%A9%D0%A6%CC%B8%A1%B6%D0%C2%C0%CB%C3%FB%C8%CB%D0%A7%D3%A6%A1%B7...
我要评论
0
6
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /4 下一条