eefocus_3957219 发表于 2025-8-17 23:17:35

【RISC-V 先楫半导体HPM5E00 MCU开发板试用体验】ABZ编码器

官方教程:
((https://www.bilibili.com/video/BV12z421o7WT/?p=45&share_source=copy_web&vd_source=869a34d39352bf3265c3c15add7fb280))

!(//m.qjumbo.com/forum/data/attachment/forum/202508/17/223046iugjkkn7jbjjng8k.png)

硬件接口:


!(//m.qjumbo.com/forum/data/attachment/forum/202508/17/222843yxf11gzc4ad1io33.png)

!(//m.qjumbo.com/forum/data/attachment/forum/202508/17/222918fmoqvh3zifmfh7io.png)

初始化代码:

```
void vInitQeiv2( void )
{
    HPM_IOC->PAD.FUNC_CTL = IOC_PC07_FUNC_CTL_QEI0_A;
    HPM_IOC->PAD.FUNC_CTL = IOC_PC06_FUNC_CTL_QEI0_B;
    HPM_IOC->PAD.FUNC_CTL = IOC_PC05_FUNC_CTL_QEI0_Z;

    qeiv2_mode_config_t mode_config = {0};
    qeiv2_phcnt_cmp_match_config_t phcnt_cmp_config = {0};

    /*mode config */
    mode_config.work_mode = qeiv2_work_mode_abz;
    mode_config.spd_tmr_content_sel = qeiv2_spd_tmr_as_spd_tm;
    mode_config.z_count_inc_mode = qeiv2_z_count_inc_on_phase_count_max;
    mode_config.phcnt_max = 65536U;
    mode_config.z_cali_enable = false;
    mode_config.z_cali_ignore_ab = false;
    mode_config.phcnt_idx = 0;
    qeiv2_config_mode( HPM_QEI0, &mode_config );
    qeiv2_set_z_phase( HPM_QEI0, 0 );       /* setting z phase init value */
    qeiv2_set_phase_cnt( HPM_QEI0, 0 );   /* setting phase cnt init value */
}
```

读取位置信息:

```
enc_value = qeiv2_get_postion( HPM_QEI0 );
```

打印位置信息:
!(//m.qjumbo.com/forum/data/attachment/forum/202508/17/231544pd1rzwfgwpsahdi5.png)

页: [1]
查看完整版本: 【RISC-V 先楫半导体HPM5E00 MCU开发板试用体验】ABZ编码器

Baidu
map