727|6

21

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

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;
        }
    }
}

最新回复

本帖最后由 xld0932 于 2024-5-10 09:34 编辑 1、官方的DDL_DelayMS函数是软件方式延时,根据当前配置的HCLK时钟频率进行计数,时间不算太精确 2、在官网可以下载当前的驱动库和样例,在HC32F460_DDL_Rev3.2.0\projects\ev_hc32f460_lqfp100_v2\examples\systick\systick_int有对应的示例程序,可参考例程实现你需要的SysTick延时函数功能 3、在你delay_init配置SysTick时,如果不需要用到中断的方式,就不要配置中断,配置了中断,就要实现中断函数   详情 回复 发表于 2024-5-10 09:30
点赞 关注
 
 

回复
举报

6767

帖子

2

TA的资源

版主

沙发
 

有没可能SysTick这个地址不对?

点评

我仿真出来得到的系统时钟是200M这是对的。[attachimg]807186[/attachimg]    详情 回复 发表于 2024-5-9 17:03
 
 
 

回复

5218

帖子

239

TA的资源

管理员

板凳
 

使用官方自带的delay函数呢?

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

用官方自带的嘀嗒函数吗,我没有用过。用官方的DDL_DelayMS函数倒是没问题。  详情 回复 发表于 2024-5-9 17:04
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

4
 
wangerxian 发表于 2024-5-8 17:47 有没可能SysTick这个地址不对?

我仿真出来得到的系统时钟是200M这是对的。

  

 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

5
 
nmg 发表于 2024-5-9 09:57 使用官方自带的delay函数呢?

用官方自带的嘀嗒函数吗,我没有用过。用官方的DDL_DelayMS函数倒是没问题。

 
 
 

回复

205

帖子

0

TA的资源

纯净的硅(初级)

6
 
本帖最后由 xld0932 于 2024-5-10 09:34 编辑

1、官方的DDL_DelayMS函数是软件方式延时,根据当前配置的HCLK时钟频率进行计数,时间不算太精确

2、在官网可以下载当前的驱动库和样例,在HC32F460_DDL_Rev3.2.0\projects\ev_hc32f460_lqfp100_v2\examples\systick\systick_int有对应的示例程序,可参考例程实现你需要的SysTick延时函数功能

3、在你delay_init配置SysTick时,如果不需要用到中断的方式,就不要配置中断,配置了中断,就要实现中断函数

点评

我当时将中断取消了,也是会有影响。  详情 回复 发表于 2024-5-11 10:25
个人签名We are a team and we work as a team !
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

7
 
xld0932 发表于 2024-5-10 09:30 1、官方的DDL_DelayMS函数是软件方式延时,根据当前配置的HCLK时钟频率进行计数,时间不算太精确 2、在 ...

我当时将中断取消了,也是会有影响。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
ADSL 拨号错误代码分析

· Error 602 The port is already open指定的端口已打开 ...

大量单片机资料下载(收集了几年的东西)(里面绝对有你想找的)

大量单片机资料下载 废话不多说 上资料 1.KEIL入门学习的好资料 本帖最后由 melodyooo 于 2010-3-19 16:38 编辑 ]

helper2416_modbus_主从机测试_支持TCP/RTU

Modbus是一种串行通信协议,是Modicon于1979年为使用可编程逻辑控制器PLC而发表的. MODBUS是工业领域通信协议的业界标准,并且现 ...

【SAMR21新玩法】汇总

本帖最后由 dcexpert 于 2019-10-18 11:36 编辑 436737 与传统开发方法不同的用法,不需要IDE和编译器,使用python和图形 ...

Arduino发布 v1.8.11 版本

457463 https://www.arduino.cc/en/main/software

TI SimpleLink™ 无线 MCU 的恒温器参考设计

510581510582 大多数智能恒温器设计人员都希望设计出低功耗、联网、基于微控制器 (MCU) 并可将各种传感器安全地连接到云(从 ...

在MDK中如何生成bin格式的文件

在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有 ...

【大学生电子竞赛题目分析】——2016年上海市TI杯B题 《短波频段数字通信系统设计》

一、任务 设计一个短波频段全数字收发通信演示系统,要求通信调制模式采用BPSK调制方式,调制符号率固定,调制载波通过程序设 ...

全志异核多构 AI智能视觉V853开发板测评 - V853 camera 媒体启动流程总结

全志V853 的相机的媒体的启动流程基本和瑞芯微的RV1109/RV1126 是类似的,以下是我总结的V853的camera媒体启动的流程: 6 ...

形影不离的好兄弟—X电容和Y电容

前言 只要是接有220V的电路板,一般都会看见安规电容的存在,黄色的是X电容,蓝色的是Y电容。 832090 ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表