查询无结果 发表于 2020-4-28 11:04

HC32F003的基本定时器驱动

按照用户手册给的配置了寄存器,32位定时器模式,启动定时器后并没有开始定时,不知道什么原因,有写过的吗

zhuotuzi 发表于 2020-4-28 21:46

肯定是没有配置对啊。

xuanhuanzi 发表于 2020-4-28 22:34

代码贴了看看。

xuanhuanzi 发表于 2020-4-28 22:49

这种一般都是没有配置对,不要纠结,单片机能出厂就说明没问题。

查询无结果 发表于 2020-4-28 23:00

麻烦各位帮忙看一下,是不是我哪里设置错了,感谢

xuanhuanzi 发表于 2020-4-28 23:12


看官方的例子啊。

xuanhuanzi 发表于 2020-4-28 23:12

ftp://HdscCustomer:HdscGuest2019!@ftp.hdsc.com.cn/%E8%B5%84%E6%96%99%E4%B8%8B%E8%BD%BD/HC32F003_SDK/%E9%A9%B1%E5%8A%A8%E5%BA%93%E5%8F%8A%E6%A0%B7%E4%BE%8B/HC32F003_DDL_Rev1.0.2.zip
void delay1ms(uint32_t u32Cnt)
{
    uint32_t u32end;
    while(u32Cnt-- > 0)
    {
      SysTick->VAL = 0;

      u32end = 0x1000000 - SystemCoreClock/1000;
      while(SysTick->VAL > u32end)
      {
            ;
      }
    }
}

HuangHongLun 发表于 2020-4-29 15:38

是不是你的全局参数没有开启呢?可以参考stm32这样的例程,我相信应该是类似的。

詹求实 发表于 2020-4-29 18:55

观察计数器的值,如果没变化,那就说明没有初始化好或者是启动失败了。

martinhu 发表于 2020-4-30 14:17

有例程啊……

jjg424 发表于 2021-8-4 22:36

华大的定时器用keilV6编译会异常,不能正常执行,后来我换了V5的编译器就正常了.问他们技术支持也说不出个所以然

jjg424 发表于 2021-8-5 10:12

本帖最后由 jjg424 于 2021-8-5 10:17 编辑

static en_result_t App_BtTimerTest(void)
{
    stc_bt_cfg_t   stcCfg;
    en_result_t       enResult = Ok;

    //打开BT外设时钟
    Sysctrl_SetPeripheralGate(SysctrlPeripheralBt, TRUE);

    stcCfg.enGateP = BtPositive;
    stcCfg.enGate= BtGateDisable;
    stcCfg.enPRS   = BtPCLKDiv16;
    stcCfg.enTog   = BtTogDisable;
    stcCfg.enCT    = BtTimer;
    stcCfg.enMD    = BtMode2;
    //Bt初始化
    if (Ok != Bt_Init(TIM1, &stcCfg))
    {
      enResult = Error;
    }

    Bt_Cnt32Set(TIM1, 0);
    Bt_Run(TIM1);

    return enResult;
}

jjg424 发表于 2021-8-5 10:22

jjg424 发表于 2021-8-5 10:12


同样的代码在V5编译器上就能正常工作,V6上编译后定时器数值一直不变化,

如果用V6编译器并且改成16位重载定时器,只要是开启"中断"后定时数值也不变化,也不会进入中断
关闭"中断"后数值会变化.但没用,没中断了.

同样的代码我换成V5的.,却跟手册描述的一样了,正常了. 还有一个问题就是你们官方例程里3个都是需要外部端口触发的. 没有内部自动定时触发中断的例程
页: [1]
查看完整版本: HC32F003的基本定时器驱动