首页
/ QP移植到正点原子STM32

QP移植到正点原子STM32

2026-02-02 04:46:19作者:彭桢灵Jeremy

本文档提供了一个关于将qp(一种实时嵌入式框架)移植到STM32F103单片机的过程压缩包。该过程已在正点原子战舰V3开发板上实验成功。

文件内容

  • qpc:qp框架核心文件
  • 移植代码:包含qp在STM32F103上的移植代码
  • 示例程序:在正点原子战舰V3开发板上运行的示例程序

移植步骤

  1. 定义相关宏:

    #define RED_QUEUE_LEN 3
    #define BLUE_QUEUE_LEN 3
    #define TACKER_EVENT_POOL_LEN (RED_QUEUE_LEN + BLUE_QUEUE_LEN)
    
  2. 创建事件队列、事件池和订阅列表:

    static QEvt const * l_redQueueSto[RED_QUEUE_LEN];
    static QEvt const * l_blueQueueSto[BLUE_QUEUE_LEN];
    static LedEvt LedEvtPoolSto[TACKER_EVENT_POOL_LEN];
    static QSubscrList SubSrcSto[MAX_PUB_SIG];
    
  3. 定义事件结构体、信号枚举和发布事件函数:

    typedef struct LedEvtTag LedEvt;
    struct LedEvtTag{ QEvt super_; uint16_t uiParaH; uint16_t uiParaL; };
    
    enum LedSignals{ START_SIG = Q_USER_SIG, KEY0_SIG, KEY1_SIG, KEY2_SIG, KEYUP_SIG, ALL_OFF_SIG, ONLY_BULE_SIG, ONLY_RED_SIG, ALL_ON_SIG, MAX_PUB_SIG };
    
    void PublishLedEvt(uint16_t uiSig, uint16_t uiParaH, uint16_t uiParaL) {
        LedEvt* peTacker = Q_NEW(LedEvt, uiSig);
        peTacker->uiParaH = uiParaH;
        peTacker->uiParaL = uiParaL;
        QF_publish_((QEvt*)peTacker);
    }
    
  4. 初始化qp框架:

    QF_init();
    QF_psInit(SubSrcSto, Q_DIM(SubSrcSto));
    QF_poolInit(LedEvtPoolSto, sizeof(LedEvtPoolSto), sizeof(LedEvtPoolSto[0]));
    
  5. 创建活动对象:

    typedef struct RedActiveTag RedActive;
    struct RedActiveTag{ QActive super_; volatile uint16_t RedLedStateNow; uint16_t a; uint16_t b; };
    
    extern RedActive RedLed;
    RedActive RedLed;
    
    void RedLed_Start(uint_fast8_t prio, QEvt const *qSto[], uint_fast16_t qLen, void *stkSto, uint_fast16_t stkSize) {
        RedLed_Ctor(&RedLed);
        QActive_start_((QActive*)&RedLed, prio, qSto, qLen, stkSto, stkSize, (QEvt const *)0);
    }
    
    void RedLed_Ctor(RedActive* me) {
        QActive_ctor(&me->super_, (QStateHandler)RedLed_Initial);
        me->RedLedStateNow = 0;
    }
    

注意事项

  • 请确保已正确安装qp框架和STM32开发环境。
  • 按照移植步骤进行操作,确保移植过程无误。

此压缩包包含的代码和文档将帮助您快速上手将qp框架移植到STM32F103单片机,并在正点原子战舰V3开发板上实现相关功能。

登录后查看全文
热门项目推荐
相关项目推荐