发新帖我要提问
123
返回列表
打印

华大HC32L136系列单片机 正交编码器有谁用过

[复制链接]
楼主: chunxulele
手机看帖
扫描二维码
随时随地手机跟帖
41
朝生| | 2024-1-3 19:43 | 只看该作者 回帖奖励 |倒序浏览
我也遇到了和OP一样的问题,你解决了吗?

使用特权

评论回复
42
芯路例程| | 2024-1-11 17:59 | 只看该作者
华大HC32l13x系列定时器正交编码功能说明- CSDN博客

使用特权

评论回复
43
宝宝a| | 2024-1-16 12:23 | 只看该作者
库里似乎没有,找代理FAE也没提过,自己跟着寄存器搓了下

void Encoder_Init() {
    stc_gpio_cfg_t stcGpioCfg = {0};

    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE); //端口外设时钟使能

    stcGpioCfg.enDir = GpioDirIn;
    stcGpioCfg.enDrv = GpioDrvL;
    stcGpioCfg.enPu = GpioPuEnable;
    stcGpioCfg.enPd = GpioPdDisable;
    stcGpioCfg.enOD = GpioOdDisable;
    stcGpioCfg.enCtrlMode = GpioAHB;

    Gpio_Init(ENCODER_GPIO_Port, ENCODER_A_PHASE_Pin, &stcGpioCfg);
    Gpio_SetAfMode(ENCODER_GPIO_Port, ENCODER_A_PHASE_Pin, GpioAf4);

    Gpio_Init(ENCODER_GPIO_Port, ENCODER_B_PHASE_Pin, &stcGpioCfg);
    Gpio_SetAfMode(ENCODER_GPIO_Port, ENCODER_B_PHASE_Pin, GpioAf6);

    stc_tim3_mode23_cfg_t stcTim3BaseCfg = {0};

    Sysctrl_SetPeripheralGate(SysctrlPeripheralTim3, TRUE);   //Timer3外设时钟使能

    stcTim3BaseCfg.enWorkMode = Tim3WorkMode2;             //锯齿波模式
    stcTim3BaseCfg.enCT = Tim3Timer;                 //定时器功能,计数时钟为内部PCLK
    stcTim3BaseCfg.enPRS = Tim3PCLKDiv2;             //PCLK/2
    stcTim3BaseCfg.enCntDir = Tim3CntUp;                 //向上计数,在三角波模式时只读

    Tim3_Mode23_Init(&stcTim3BaseCfg);                        //TIM3 的模式23功能初始化

    // see RM_HC32L13x系列参考手册_Rev2.35 14.2.7 正交编码计数功能
    M0P_TIM3_MODE23->MSCR_f.SMS = 6;
    M0P_TIM3_MODE1->FLTR_f.FLTA0 = 0b100;
    M0P_TIM3_MODE1->FLTR_f.FLTB0 = 0b100;
    M0P_TIM3_MODE23->CRCH0_f.CFA_CRA_BKSA = 0b11;
    M0P_TIM3_MODE23->CRCH0_f.CFB_CRB_BKSB = 0b11;

    Tim3_M23_Cnt16Set(encoder_central_count);

    Tim3_M23_Run();

    encoder_check = true;
}

uint16_t Encoder_GetCnt() {
    return Tim3_M23_Cnt16Get();
}

void Encoder_SetCnt(uint16_t cnt) {
    Tim3_M23_Cnt16Set(cnt);
}

使用特权

评论回复
44
V853| | 2024-2-2 00:16 | 只看该作者
这个材料不熟悉,可以请原厂看一下吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则