OpenEdv-开源电子网

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

一样的程序,下载到不同型号片子,效果真的不一样。大家来围观(原子哥的跑马灯)

[复制链接]

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2012-5-12
在线时间
27 小时
发表于 2013-11-11 15:44:43 | 显示全部楼层 |阅读模式
原子哥的第一个例子,跑马灯程序,我只是改了一下延时的子程序。  延时ms的和延时 us 的都改为循环等的方式,程序如下,及见附件。
在此我不是讨论它们的准确性,而是讨论它们在不同型号的芯片是运行的速度。即不同型号的STM32执行指令速度差很远
void delay_ms(u16 nms)
{        
 u32 temp0;    
 for (temp0=0;temp0<nms*10;temp0++) 
 {delay_us(50);
 }  
}   
             
void delay_us(u32 nus)
{  
 u32 temp1;  
 for (temp1=0;temp1<nus*5;temp1++)   
 { ;
 }
}
/////////////////////////////////////////////////////////////////////////////////////
主程序:LED0为测试用的LED灯。
while(1)
 {
  LED0=0;    //关LED0
 delay_ms(20);//延时20ms
  LED0=1;    //开LED0
  delay_ms(20);  延时20ms
 }

将这个程序分别下载入STM32F103C8T6  及  STM32F100C8  

大家猜猜是谁跑的慢呀??



很出奇,平宜,而且性能不大好的100C8 竟然比103C8快好多。出来的效果就是100C8板子上的LED基来上看不到闪,即它的开关超过了人眼识别范围。
而103C8T6 却慢的多。明显的看到LED0脚上的LED灯在闪呀闪。这说明这个延时程序。在100C8上运行的快点,而在103C8上运行的慢点。

想请教一下原子大哥有没有什么寄存器是专门设置STM32的指令速度的。     另外,试过USART,系统滴答都正常。证明了,仅是这段延时程序不一样。更证明了是执行指令上的问题。而且我分别在3片103及3片100上都试验过了,情况都是这样。

请遇到过这样问题的网友指点一下,是不是我的测试不正确呢,谢谢。

实验1 跑马灯实验.rar

30.65 KB, 下载次数: 79

做好的软件为人类服务
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2013-11-11 21:26:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 0 反对 1

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
发表于 2013-11-11 15:53:56 | 显示全部楼层
主频一样?
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-11-11 17:07:51 | 显示全部楼层
时钟配置正确了再说
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-11-11 17:26:04 | 显示全部楼层
回复【楼主位】lele182:
---------------------------------
始终什么的要在相同的条件下测试才对的,晶振,始终配置什么的都要一样,要不然是永远得不到答案的,呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2012-5-12
在线时间
27 小时
 楼主| 发表于 2013-11-12 11:33:18 | 显示全部楼层
是一样的板子呀,是同一款的产品上的呀,我只是在同样的板子上装上不同的芯片,一样的晶振,所有都一样。除了唯一不同的是两个芯片不同。
做好的软件为人类服务
回复 支持 反对

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2012-5-12
在线时间
27 小时
 楼主| 发表于 2013-11-12 11:36:49 | 显示全部楼层
回复【3楼】aleda303:
---------------------------------
你没看清楚问题没有必要回答吧,说了是下载一样的程序了 ,还配什么呀,这是原子的例程呀,不懂的显什么摆
做好的软件为人类服务
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-11-12 11:57:13 | 显示全部楼层
回复【7楼】lele182:
---------------------------------
一样的程序 对应不一样的硬件 时钟肯定配置是不同的

你晶振是多少?是有源的还是无源的? 跟 那个板子一样不一样?
起振电容式多少? 是不是晶振没启动?

这个问题肯定是时钟的问题!!!
也包括硬件部分, 一样的 衣服 你穿着合适 给姚明穿 肯定小啊 !!!
回复 支持 反对

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2012-5-12
在线时间
27 小时
 楼主| 发表于 2013-11-12 12:15:10 | 显示全部楼层
我买的是原子的板子,产品和原子的板基本一样,8M晶振,倍频 3 倍,达到24M。直接下载到原子的103RBT6板上也可以看到。当然下载到原子的板子上运行,我都试了。一直找不到原因。只是自己认为是芯片的执行时间不一样。而且我也反复看过了100C8和103C8 的资料,对比了Stm32_Clock_Init()子程序里的时钟呀等配置寄存器,就几个嘛,都是一模一样的。就是不知道还有没有其他寄存器连原子哥都漏了设置,或是100C8有,103C8没有,不知道大家有没有和原子不一样的Stm32_Clock_Init()
做好的软件为人类服务
回复 支持 反对

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2012-5-12
在线时间
27 小时
 楼主| 发表于 2013-11-12 22:43:08 | 显示全部楼层
没会的人顶一下吗?
做好的软件为人类服务
回复 支持 反对

使用道具 举报

0

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2018-8-16
在线时间
25 小时
发表于 2019-3-10 19:37:47 | 显示全部楼层
。。。。。。。。。。。。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

2

主题

65

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2106
金钱
2106
注册时间
2016-5-21
在线时间
238 小时
发表于 2019-3-14 01:22:47 | 显示全部楼层
如果条件容许,建议多找个板子测试下,看看是特例还是普遍现象
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 01:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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