打印
[方案讨论]

航顺HK32F103RBT6单片机运行慢的问题

[复制链接]
4747|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
铁血丹心LLLL|  楼主 | 2021-2-27 22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
航顺HK32F103RBT6单片机运行慢的问题
问题描述:
用惯了ST公司的M3系列单片机,而又要支持国产,所以找到了国产航顺M3系列,说它完全和STM32单片机兼容,硬件电路和程序都可以直接使用,为了以后的项目方便使用,做了这么一个验证实验:

1.将以前一个使用STM32F103RET6做的一个项目的PCB板子拿来,将板子上STM32芯片使用风枪吹下来,直接替换成HK32F103RBT6芯片;
2.使用STLink结合MDK5.24来调试:打开之前的MDK工程副本,将以前MDK项目Device里的STM32F103RET6改成ST32F103RBT6,再将Debug设置中的FlashDownload改为128K;
3.重新编译;
4.点击下载;

下载后,程序能够跑起来,引脚控制、串口输出、flash读写等等都没有问题,唯一的问题是:感觉所有动作都慢半拍,运行得很慢!举例:一个500ms的延时,结果表现出来5秒的样子;


使用特权

评论回复

相关帖子

沙发
铁血丹心LLLL|  楼主 | 2021-2-27 22:29 | 只看该作者
找原因:
1.首先怀疑是因为外部晶振没有起振,导致芯片自动使用了内部低速时钟:用示波器看晶振波形,结论是:晶振工作正常;
2.怀疑程序中其他程序模块的影响:主函数中,将其他程序全部注释掉,只剩下延时和LED,结论是:并不是这样的;
3.一阵瞎折腾:省略折腾过程,

最终结论:航顺芯片内部启动外部高速时钟HSE耗时比STM32长一点,以至于在执行如下库函数代码时超时跳出,没能正常启动外部高速时钟HSE:

/* Wait till HSE is ready and if Time out is reached exit */
do
{
HSEStatus = RCC->CR & RCC_CR_HSERDY;
StartUpCounter++;
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

使用特权

评论回复
板凳
铁血丹心LLLL|  楼主 | 2021-2-27 22:33 | 只看该作者
解决办法:
1.打开stm32f10x.h,找到如下一行:

#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*!< Time out for HSE start up */

2.将超时时间HSE_STARTUP_TIMEOUT改长一些,这里我将0x0500改为0xF500

3.重新编译下载;

问题解决!

使用特权

评论回复
地板
ifxz0123| | 2021-3-2 18:02 | 只看该作者
铁血丹心LLLL 发表于 2021-2-27 22:33
解决办法:
1.打开stm32f10x.h,找到如下一行:

另外,老版的芯片代码执行效率略比ST的低一些,新版的基本和ST一样甚至更快。后期建议用带A的新版

使用特权

评论回复
5
onlycook| | 2021-3-3 10:03 | 只看该作者
很好的经验,值得借鉴

使用特权

评论回复
6
单片小菜| | 2021-3-3 12:37 | 只看该作者
感谢楼主的分析,我也好好弄一下,试试。

使用特权

评论回复
7
里面有晴雨| | 2021-3-3 15:04 | 只看该作者
确实是很好的经验,不错的。值得学习。

使用特权

评论回复
8
名字是啥样| | 2021-3-4 11:17 | 只看该作者
这个确实是不错的东西,可以推广一下的。

使用特权

评论回复
9
yangjiaxu| | 2021-3-5 13:46 | 只看该作者
讲的挺好的 这问题值得注意

使用特权

评论回复
10
便携手到老| | 2021-3-5 16:21 | 只看该作者
这个我还真没有感觉到速度慢的问题。

使用特权

评论回复
11
aspoke| | 2021-3-7 21:19 | 只看该作者
时钟配置正确了吗   

使用特权

评论回复
12
232321122| | 2021-3-7 21:19 | 只看该作者
设置的最大的频率呢   

使用特权

评论回复
13
ghuca| | 2021-3-7 21:19 | 只看该作者
怎么感觉很仿真一样呢

使用特权

评论回复
14
soodesyt| | 2021-3-7 21:19 | 只看该作者
铁血丹心LLLL 发表于 2021-2-27 22:33
解决办法:
1.打开stm32f10x.h,找到如下一行:

这个是st芯片吗   

使用特权

评论回复
15
mnynt121| | 2021-3-7 21:20 | 只看该作者
ifxz0123 发表于 2021-3-2 18:02
另外,老版的芯片代码执行效率略比ST的低一些,新版的基本和ST一样甚至更快。后期建议用带A的新版 ...

学习了。        

使用特权

评论回复
16
plsbackup| | 2021-3-7 21:20 | 只看该作者
铁血丹心LLLL 发表于 2021-2-27 22:29
找原因:
1.首先怀疑是因为外部晶振没有起振,导致芯片自动使用了内部低速时钟:用示波器看晶振波形,结论 ...

感觉频率设置错误了。   

使用特权

评论回复
17
kmzuaz| | 2021-3-7 21:20 | 只看该作者
代码跟stm32兼容吗   

使用特权

评论回复
18
qiufengsd| | 2021-3-7 21:21 | 只看该作者
程序都能互相下载呢   

使用特权

评论回复
19
wengh2016| | 2021-3-7 21:21 | 只看该作者
这个支持stm32的hal?  

使用特权

评论回复
20
iyoum| | 2021-3-7 21:21 | 只看该作者
铁血丹心LLLL 发表于 2021-2-27 22:33
解决办法:
1.打开stm32f10x.h,找到如下一行:

谢谢解决方案了。  

使用特权

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

本版积分规则

66

主题

487

帖子

1

粉丝