0 HC32F072JATA 计数器不能正常记数求助 - - 21ic电子技术开发论坛
打印
[技术问答]

HC32F072JATA 计数器不能正常记数求助

[复制链接]
1396|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
icpal|  楼主 | 2022-3-21 16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TI, AC, AD, HC, APWM
本帖最后由 icpal 于 2022-3-21 16:01 编辑

第一次做arm的项目,用的是HC32F072JATA,有一个功能实现不了:

TIM0输出PWM信号,用于驱动步进电机,然后用TIM1在内部互联,对TIM0的PWM进行记数。由于官网的包里找不到类似的参考例程,打电机官网不给支持,自己也没有琢磨出来。

问题表现在,TIM0的PWM开启后,读TIM1的CNT值,能从0跑变到1,但一直为1不再增加。



于是我把代码简代了,功能改成,我在PB10和PB11手动输入高电平脉冲信号,让TIM1去记数,但记得的结果,仍然是1。即便我把CNT值初始为1000,执行后,CNT值还是1
以下是TIM1的初始化代码:
void TIM1_Init()
{
    //------------------ 端口配置初始化 ------------------
    stc_gpio_cfg_t          stcTIM1Port;
    DDL_ZERO_STRUCT(stcTIM1Port);
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE); //GPIO 外设时钟使能
    stcTIM1Port.enDir  = GpioDirIn;
    //PB10设置为TIM1_CHA
    Gpio_Init(GpioPortB, GpioPin10, &stcTIM1Port);
    Gpio_SetAfMode(GpioPortB,GpioPin10,GpioAf3);
    //PB11设置为TIM1_CHB
    Gpio_Init(GpioPortB, GpioPin11, &stcTIM1Port);
    Gpio_SetAfMode(GpioPortB,GpioPin11,GpioAf2);
   
    //------------------ TIM1 模式1 ------------------
    Sysctrl_SetPeripheralGate(SysctrlPeripheralBaseTim, TRUE); //Base Timer外设时钟使能
   
    // TIM1初始化(模式1)
    Bt_Mode1_Init(TIM1, &(stc_bt_mode1_cfg_t){
                .enWorkMode = BtWorkMode1,                //MODE                //工作模式 :PWC模式
                .enCT       = BtCounter,                //CT                //功能选择 :定时器
                .enPRS      = BtPCLKDiv1,                //PRS                //预除频   :1
                .enOneShot  = BtPwcCycleDetect        //ONESHOT        //单次/循  : PWC循环检
        });
   
        // PWC 输入配置(模式1)
    Bt_M1_Input_Cfg(TIM1, &(stc_bt_pwc_input_cfg_t){
                .enTsSel          = BtTs7IBFP,                                        //PWC输入  : CHB
                // CHA
                .enIA0Sel         = BtIA0Input,
                .enFltIA0         = BtFltNone,
                // CHB
                .enIB0Sel         = BtIB0Input,
                .enFltIB0         = BtFltNone,
                // ETR
                .enETRPhase = BtPortPositive,
                .enFltETR         = BtFltNone
        });
        // PWC测量边沿起始结束选择
    Bt_M1_PWC_Edge_Sel(TIM1, BtPwcRiseToRise);                //上升沿到上升沿捕获
   
    Bt_M1_Cnt16Set(TIM1, 1000);                                                //设置计数初值
}


使用特权

评论回复
评论
martinhu 2022-3-25 18:12 回复TA
模式1——pwc是测脉宽的,不是计数的。 
沙发
icpal|  楼主 | 2022-3-25 10:25 | 只看该作者
好些天了,希望有大神能帮忙分析一下

使用特权

评论回复
板凳
yelong98| | 2022-3-28 15:14 | 只看该作者
072多少钱一个?

使用特权

评论回复
地板
icpal|  楼主 | 2022-3-31 10:36 | 只看该作者

我只是买了十来片先调试,批量的话不到十块钱

使用特权

评论回复
5
zbxiong139| | 2022-4-1 12:02 | 只看该作者
前两天也买了几片试试,每片8.5元,说有量可谈。

使用特权

评论回复
6
icpal|  楼主 | 2022-5-11 20:29 | 只看该作者
zbxiong139 发表于 2022-4-1 12:02
前两天也买了几片试试,每片8.5元,说有量可谈。

问题一直没有解决,加上现在供货不太好,我放弃了

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝