OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2314|回复: 3

F407,UCOSiii,程序写着写着就变慢了?

[复制链接]

3

主题

5

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-12-21
在线时间
6 小时
发表于 2017-12-21 13:03:05 | 显示全部楼层 |阅读模式
1金钱
用例子程序进行修改,三个任务+一个软定时器,刚刚开始软定时器、各种delay函数执行均正常。

后来慢慢添加程序,包括打开usart6以及一些其他子函数,发现所有的delay函数都不准,变慢了很多,软定时器也是,特别慢。

原来软定时器周期1s,现在变成几乎10s了。

刚刚用这个系统,请问哪位遇到个这个问题?

最佳答案

查看完整内容[请看2#楼]

给晶振上一下锡就好了,估计是晶振管脚虚汗了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-12-21
在线时间
6 小时
 楼主| 发表于 2017-12-21 13:03:06 | 显示全部楼层
augustedward 发表于 2017-12-21 15:51
估计是你晶震坏了。


给晶振上一下锡就好了,估计是晶振管脚虚汗了
回复

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-12-21
在线时间
6 小时
 楼主| 发表于 2017-12-21 13:49:10 | 显示全部楼层
我把例子程序灌进去,发现还是一样慢,会不会是我的STM32F407坏了?

例子程序delay的是500ms,可执行的效果5s一次。

//////////

//浮点测试任务
void float_task(void *p_arg)
{
        CPU_SR_ALLOC();
        static float float_num=0.01;
        while(1)
        {
                float_num+=0.01f;
                OS_CRITICAL_ENTER();        //进入临界区
                printf("float_num的值为: %.4f\r\n",float_num);
                OS_CRITICAL_EXIT();                //退出临界区
                delay_ms(500);                        //延时500ms
        }
}
////


printf的效果:

【2017-12-21 13:48:55:218】float_num的值为: 0.5800

【2017-12-21 13:49:00:488】float_num的值为: 0.5900

【2017-12-21 13:49:05:751】float_num的值为: 0.6000

【2017-12-21 13:49:11:015】float_num的值为: 0.6100

【2017-12-21 13:49:16:278】float_num的值为: 0.6200

【2017-12-21 13:49:21:540】float_num的值为: 0.6300

【2017-12-21 13:49:26:801】float_num的值为: 0.6400

【2017-12-21 13:49:32:065】float_num的值为: 0.6500

【2017-12-21 13:49:37:328】float_num的值为: 0.6600
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12044
金钱
12044
注册时间
2013-3-8
在线时间
1281 小时
发表于 2017-12-21 15:51:38 | 显示全部楼层
估计是你晶震坏了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-15 05:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表