OpenEdv-开源电子网

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

不外接晶振,用stm32内部晶振

[复制链接]

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2013-10-27
在线时间
0 小时
发表于 2013-11-30 12:06:06 | 显示全部楼层 |阅读模式
我参照原子哥的程序,修改了时钟的程序,想用内部晶振!但是没有成果!程序如下。不知道还有那边要修改!
void Stm32_Clock_Init(u8 PLL)
{
unsigned char temp=0;   
MYRCC_DeInit();  //复位并配置向量表
RCC->CR|=0x00000001;  //外部高速时钟使能HSEON
while(!(RCC->CR>>1));//等待外部时钟就绪
RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;
PLL-=2;//抵消2个单位
RCC->CFGR|=PLL<<16;   //设置PLL值 2~16
RCC->CFGR|=0<<16;  //PLLSRC ON 
FLASH->ACR|=0x32;  //FLASH 2个延时周期

RCC->CR|=0x01000000;  //PLLON
while(!(RCC->CR>>25));//等待PLL锁定
RCC->CFGR|=0x00000002;//PLL作为系统时钟  
while(temp!=0x02)     //等待PLL作为系统时钟设置成功
{   
temp=RCC->CFGR>>2;
temp&=0x03;
}    
}     
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2013-10-27
在线时间
0 小时
 楼主| 发表于 2013-11-30 12:11:27 | 显示全部楼层
回复【楼主位】大懒虫:
---------------------------------PLL我也设置的9
回复 支持 反对

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2013-12-1 18:48:44 | 显示全部楼层
你说内部晶振没起振嘛?这可以用MCO测试一下啊。
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-12-1 20:57:55 | 显示全部楼层
回复【楼主位】大懒虫:
---------------------------------
直接不调用: Stm32_Clock_Init
就是使用内部8M RC震荡作为时钟的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

145

主题

477

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1264
金钱
1264
注册时间
2012-4-2
在线时间
69 小时
发表于 2013-12-4 11:16:00 | 显示全部楼层
原子哥,请问怎么使用内部8M RC震荡作为时钟
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-12-4 12:02:00 | 显示全部楼层
默认就是
你不去调用我们的时钟初始化函数,默认就是内部8M RC。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-12-4 12:02:28 | 显示全部楼层
比如:
int main(void)
{
u8 key;
u16 i=0;
u8 datatemp[SIZE];  
  //Stm32_Clock_Init(9); //系统时钟设置
uart_init(8,9600);   //串口初始化为9600
delay_init(8);       //延时初始化 
LED_Init();    //初始化与LED连接的硬件接口
LCD_Init();     //初始化LCD
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

145

主题

477

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1264
金钱
1264
注册时间
2012-4-2
在线时间
69 小时
发表于 2013-12-4 12:22:38 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------

使用内部默认的8M RC时钟能不能设置倍频为72M
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-12-4 19:15:01 | 显示全部楼层
不可以 
内部RC晶振要PLL之前,要除以2,也就是最4M了,然后最大的PLL是16,那么最多就是64M了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

172

主题

539

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3449
金钱
3449
注册时间
2015-10-5
在线时间
492 小时
发表于 2016-1-14 20:56:47 | 显示全部楼层
同志,你成功了吗?可不可以把程序发我一下,急急急
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2016-1-3
在线时间
5 小时
发表于 2016-1-14 21:51:28 | 显示全部楼层
RCC->CFGR|=0<<16;          //PLLSRC ON      
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2016-1-3
在线时间
5 小时
发表于 2016-1-14 21:51:59 | 显示全部楼层
改为RCC->CFGR &= ~(1 << 16);        // HSI振荡器时钟经2分频后作为PLL输入时钟
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2016-1-3
在线时间
5 小时
发表于 2016-1-14 21:54:55 | 显示全部楼层
本帖最后由 Francis 于 2016-1-14 21:56 编辑

在原子代码的基础上自己改的:

// 时钟源选择
#define  CLK_HSI    1
#define  CLK_HSE    2


/*********************************************************************************
  * @函数名:Stm32_Clock_Init
  * @描  述:系统时钟初始化函数
  * @参  数:CLKFROM  选择时钟来源,CLK_HSI 内部时钟,CLK_HSE 外部时钟
  *                PLL      选择的倍频数,从2开始,最大值为16                 
  * @返回值;无
  * @说  明:
**********************************************************************************/
void Stm32_Clock_Init(u8 CLKFROM, u8 PLL)
{
        unsigned char temp = 0;

        RCC_DeInit();                            // 复位并配置向量表
  
        RCC->CFGR = 0X00000400;     // APB1 = DIV2; APB2 = DIV1; AHB = DIV1;
        PLL -= 2;                                            // 抵消2个单位(因为是从2开始的,设置0就是2)
        RCC->CFGR |= PLL << 18;     // 设置PLL值 2~16
   
        if(CLK_HSI == CLKFROM)      // 使用内部时钟  SYSCLK = 4 * PLL MHz
       {
           RCC->CR |= 0x00000001;    // 内部高速时钟使能HSEON
           while(!(RCC->CR >> 1));   // 等待内部时钟就绪
           RCC->CFGR &= ~(1 << 16);        // HSI振荡器时钟经2分频后作为PLL输入时钟
       }
       else if(CLK_HSE == CLKFROM) // 使用外部时钟 SYSCLK = HSE * PLL MHz
      {
         RCC->CR |= 0x00010000;    // 外部高速时钟使能HSEON
         while(!(RCC->CR >> 17));  // 等待外部时钟就绪
         RCC->CFGR |= 1 << 16;            // HSE时钟作为PLL输入时钟
      }
  
        FLASH->ACR |= 0x32;                // FLASH 2个延时周期
        RCC->CR |= 0x01000000;      // PLLON
        while(!(RCC->CR >> 25));    // 等待PLL锁定
        RCC->CFGR |= 0x00000002;    // PLL作为系统时钟         
        while(temp != 0x02)         // 等待PLL作为系统时钟设置成功
        {   
                temp = RCC->CFGR >> 2;
                temp &= 0x03;
        }   
}                    
回复 支持 反对

使用道具 举报

7

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2012-7-16
在线时间
504 小时
发表于 2016-2-26 10:47:45 | 显示全部楼层
Francis 发表于 2016-1-14 21:54
在原子代码的基础上自己改的:

// 时钟源选择

试过了,这个好使,谢谢。
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2016-3-3
在线时间
13 小时
发表于 2016-6-13 21:23:32 来自手机 | 显示全部楼层
不外接晶振能用jlink下载程序吗?
回复 支持 反对

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3990
金钱
3990
注册时间
2015-11-14
在线时间
541 小时
发表于 2016-6-13 22:11:26 | 显示全部楼层
可以的,下载的时候使用的就是内部时钟吧!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-6-13
在线时间
2 小时
发表于 2016-6-13 22:26:29 | 显示全部楼层
顶顶顶
回复 支持 反对

使用道具 举报

15

主题

406

帖子

0

精华

高级会员

Rank: 4

积分
795
金钱
795
注册时间
2015-3-26
在线时间
151 小时
发表于 2016-6-14 09:27:03 | 显示全部楼层
用库库库啊
回复 支持 反对

使用道具 举报

6

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
474
金钱
474
注册时间
2020-8-3
在线时间
46 小时
发表于 2023-4-7 14:57:14 | 显示全部楼层
顶,正要用这个
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 11:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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