OpenEdv-开源电子网

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

delay.c的延时不对 发现系统时钟和HCLK只有8M 不是72M 从而导致延时时间不正确 要怎么解决

[复制链接]

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-5-22
在线时间
28 小时
发表于 2016-8-6 15:51:33 | 显示全部楼层 |阅读模式
5金钱
这样延时1us的话相当于是延时了9us  延时1ms的话相当于延时了9ms   要怎么把系统时钟设置成72M???   之前DS18B20一直检测不到就是这个原因  但是现在DS18B20工作了  检测的温度相差好几度   不知道是什么原因ps: 板子发热对DS18B20有影响吗 ???      

0(~B8CCL2$~4TFV$OBJZ6}L.png
1F1K~77HX$FSVH@]7@09U20.png
1V`U{TY0EM[N[)FP{1Q4AEW.png
33N)}9Y`B7Q0F8~W)QU19RE.png

最佳答案

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

问题解决了 晶振没有短路 是晶振没有起振 换了块晶振就好了 之前那块应该是坏了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-5-22
在线时间
28 小时
 楼主| 发表于 2016-8-6 15:51:34 | 显示全部楼层
  问题解决了   晶振没有短路    是晶振没有起振    换了块晶振就好了   之前那块应该是坏了
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-5-22
在线时间
28 小时
 楼主| 发表于 2016-8-6 15:52:31 | 显示全部楼层
自顶一记
回复

使用道具 举报

20

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
407
金钱
407
注册时间
2016-3-27
在线时间
104 小时
发表于 2016-8-6 17:43:18 | 显示全部楼层
请问那个PRCC在哪查看?
回复

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2014-8-21
在线时间
15 小时
发表于 2016-8-6 17:44:17 | 显示全部楼层
楼主用的什么软件?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-8-6 19:39:29 | 显示全部楼层
说明你倍频失败了!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-5-22
在线时间
28 小时
 楼主| 发表于 2016-8-6 20:12:28 | 显示全部楼层
xmetoo 发表于 2016-8-6 17:44
楼主用的什么软件?

keil 啊
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-5-22
在线时间
28 小时
 楼主| 发表于 2016-8-6 20:15:50 | 显示全部楼层
希望阿 发表于 2016-8-6 17:43
请问那个PRCC在哪查看?

这里面
%PSMJD5K%QC_97]}5Z{`H%C.png
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-5-22
在线时间
28 小时
 楼主| 发表于 2016-8-6 20:37:47 | 显示全部楼层
正点原子 发表于 2016-8-6 19:39
说明你倍频失败了!!

   倍频失败是什么原因    那在那里设置倍频  ???  rcc.c  里面吗  原子哥
回复

使用道具 举报

0

主题

0

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-6-17
在线时间
18 小时
发表于 2016-8-6 20:41:31 | 显示全部楼层
我遇到过一次,软件都正常,结果是俩晶振引脚短路,导致晶振失去作用,硬件解决了就好了。。。。
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-5-22
在线时间
28 小时
 楼主| 发表于 2016-8-6 21:11:48 | 显示全部楼层
东方明珠 发表于 2016-8-6 20:41
我遇到过一次,软件都正常,结果是俩晶振引脚短路,导致晶振失去作用,硬件解决了就好了。。。。

意思是外部晶振失去了作用  用的是内部晶振吗   ???
回复

使用道具 举报

20

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
407
金钱
407
注册时间
2016-3-27
在线时间
104 小时
发表于 2016-8-7 09:14:38 | 显示全部楼层
我先在也是遇到这样的问题,我量的也是晶振的两个引脚短路。
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2016-5-22
在线时间
28 小时
 楼主| 发表于 2016-8-8 09:07:35 | 显示全部楼层
希望阿 发表于 2016-8-7 09:14
我先在也是遇到这样的问题,我量的也是晶振的两个引脚短路。

测了下  没短路
回复

使用道具 举报

20

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
407
金钱
407
注册时间
2016-3-27
在线时间
104 小时
发表于 2016-8-19 15:19:47 | 显示全部楼层
正点原子 发表于 2016-8-6 19:39
说明你倍频失败了!!

请问在哪里设置倍频?
回复

使用道具 举报

25

主题

138

帖子

0

精华

高级会员

Rank: 4

积分
612
金钱
612
注册时间
2016-6-7
在线时间
59 小时
发表于 2016-9-12 17:17:06 | 显示全部楼层
正点原子 发表于 2016-8-6 19:39
说明你倍频失败了!!

我也遇到了这个现象,请问原子哥应该怎么设置倍频?相同的程序,只是我现在芯片由STM32F103RBT6换成了STM32F103C8T6,就出现了这个问题。
回复

使用道具 举报

5

主题

266

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1526
金钱
1526
注册时间
2016-7-20
在线时间
155 小时
发表于 2016-9-19 12:00:34 | 显示全部楼层
我倍频程序是这样设置的:
/*时钟初始化:72MHz*/
static void RCC_init(void)
{
        ErrorStatus t;
       
        RCC_DeInit();//复位系统时钟设置
        RCC_HSEConfig(RCC_HSE_ON);//开启外部高速晶体振荡器
        t = RCC_WaitForHSEStartUp();//等待HSE起振稳定
        if(t == SUCCESS)
        {
                RCC_HCLKConfig(RCC_SYSCLK_Div1);//选择AHB时钟为系统时钟的一分频
                RCC_PCLK2Config(RCC_HCLK_Div1);        //APH2时钟为AHB一分频
                RCC_PCLK1Config(RCC_HCLK_Div2);        //APH1时钟为AHB二分频
                FLASH_SetLatency(FLASH_Latency_2);//设置flash延时周期数是2
                FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//使能flash预取缓存
                RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);//选择PLL时钟源为HSE一分频,倍频数为9,8*9=72MHz
                RCC_PLLCmd(ENABLE);//使能PLL
                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);//等待PLL稳定
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//选择系统时钟为PLL
                while(RCC_GetSYSCLKSource() != 0x08);//等待PLL成为系统时钟
        }       
}
我是可以什么都不说 ,但不可以什么都不做。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 13:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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