121315L

  • 2024-05-11
  • 回复了主题帖: HC32F460,嘀嗒延时问题?

    xld0932 发表于 2024-5-10 09:30 1、官方的DDL_DelayMS函数是软件方式延时,根据当前配置的HCLK时钟频率进行计数,时间不算太精确 2、在 ... 我当时将中断取消了,也是会有影响。

  • 2024-05-09
  • 回复了主题帖: HC32F460,嘀嗒延时问题?

    nmg 发表于 2024-5-9 09:57 使用官方自带的delay函数呢? 用官方自带的嘀嗒函数吗,我没有用过。用官方的DDL_DelayMS函数倒是没问题。

  • 回复了主题帖: HC32F460,嘀嗒延时问题?

    wangerxian 发表于 2024-5-8 17:47 有没可能SysTick这个地址不对? 我仿真出来得到的系统时钟是200M这是对的。  

  • 2024-05-08
  • 发表了主题帖: HC32F460,嘀嗒延时问题?

    使用库3.2.0时,自己的延时函数会造成芯片跑飞,串口漏打印。我测试以前库1.21时,发现没问题,具体原因不知道为什么。库2.2.0也会造成这样的问题。下面给出了嘀嗒延时初始化和毫秒延时函数,我在STM32F1的HAL库使用也没问题。 void delay_init(void) {     SysTick->LOAD = (uint32_t)(SystemCoreClock / 1000); // 设置重装载值1ms     NVIC_SetPriority(SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); // 设置中断     SysTick->VAL = 0UL; // 计数值清零     SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |                     SysTick_CTRL_TICKINT_Msk |                     SysTick_CTRL_ENABLE_Msk; // 选择系统时钟,使能中断、时钟 } void delay_ms(uint32_t u32Cnt) {     uint32_t ticks;     uint32_t told, tnow, tcnt = 0;     uint32_t reload = SysTick->LOAD; // 读取重装载值     ticks = u32Cnt * (SystemCoreClock / 1000); // 转换成1ms基本单位的节拍     told = SysTick->VAL;     while (1)     {         tnow = SysTick->VAL;         if (tnow != told)         {             if (tnow < told)                 tcnt += told - tnow;             else                 tcnt += reload - tnow + told;             told = tnow;             if(tcnt >1000000)               {                 continue;               }             if (tcnt >= ticks)                 break;         }     } }

  • 2024-05-06
  • 发表了主题帖: HC32F460关于定时器0的中断3种方式问题?

    定时器0我选择第一种和第二种方式中断都没有问题,但是第三种方式中断号设置为130无法中断。        

  • 2024-03-20
  • 发表了主题帖: HC32F460 串口两个DMA的问题?

    本帖最后由 121315L 于 2024-3-20 15:16 编辑 两个问题: 1.我按照官方的3.2.0的例程进行移植,单个串口的DMA传输已完成,其中串口1的接收DMA传输完成中断,我使用调试模式从来没进入过这个中断函数,我将该中断函数的里面代码,不影响正常功能。 2.我使用串口2,将关于串口2的DMA初始化后,会造成DMA传输通道计数会累计一直增加,不会正常的计数,现在不知道怎么办。   串口1接收DMA1通道0,串口2接收DMA1通道1 串口1发送DMA2通道0,串口2发送DMA2通道1    

  • 2024-03-13
  • 发表了主题帖: HC32F460库3.2.0问题

    由于官方库的例程使用的芯片是HC32F460PETB,我使用官方给的工程template,芯片换成HC32F460JETA,使用官方UART_DMA例程,里面时钟初始化一直不通过,死在这段代码DDL_ASSERT(IS_CLK_UNLOCKED()),我将keil工程芯片换成HC32F460PETB下载到HC32F460JETA里去,时钟初始化就通过了,求大神指教一下?我是哪个工程配置和文件没有配置好吗? 补充内容 (2024-3-20 14:23): 已解决

最近访客

现在还没有访客

< 1/0 >

统计信息

已有--人来访过

  • 芯积分:38
  • 好友:--
  • 主题:7
  • 回复:14

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言