stm32rtc时钟f0系列中有没有故障保护时钟监视器

文章中关于360云盘下载链接都已失效,请微信公众号“下载区”获取更新链接。...
STM32F0xx_GPIO配置详细过程
对于初学STM32的人来说,很多基础的知识没有掌握,这些基础知识就成为阻挡他们入门的门槛。因此,今天也把基础的知识分享出来,带领那些还没有迈过这个门槛的人入门。
今天总结“GPIO配置详细”,以F0标准外设库初始化结构体来重点讲解。接着昨天“新建软件工程详细过程”来进行讲解,今天分两大部分内容总结。工程描述、IO配置源代码详细讲解。
本着免费分享的原则,如果你觉得分享内容对你有用,请关注微信公众号“EmbeddDeveloper”还有更多精彩内容等着你。
ST标准外设库和参考手册、数据手册等都可以在ST官网下载的到(请自行下载)。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议使用这个,以后如果你换用一种型号芯片也方便了解。
今天提供下载的软件工程其实和昨天差不多,只是多了IO配置的中文注释,方便了解。
今天的软件工程下载地址(360云盘):
访问密码 3b8f
STM32F0xx的资料可以在我360云盘下载:
访问密码 8c37
①文件夹描述
针对初学者描述一下工程的基本信息。解压软件工程包,打开就看到如下图文件,红色框出来的部分主要是用于软件工程里面的源代码文件。
App: 应用部分代码(如我们写的一些应用文件)
Bsp: 底层代码(如底层驱动文件)
Doc: 文档(这里添加一些对工程的描述)
Libraries: 标准库(提取标准外设库)
Listings: 编译生成列表文件
Objects: 编译生成目标文件
GPIO:这两个文件是工程文件
删除编译产生垃圾文件:需要打包整个工程的时候,双击这个文件可删除不需要的文件(如上面两个文件夹Listings和Objects下的文件)。
②结构描述
当我们用MDK-ARM软件直接打开软件工程,就可以看到下图所示的结构,将文件夹的“Libraries”分为三项,如下图:
源代码详情
该函数位于bsp.c文件下面;
我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。
为了防止大家修改来使用其他端口而忘记配置RCC,这里将F0常用的几个端口都配置上(实际应该使用那些端口才配置)。
该函数位于bsp.c文件下面;
这里的配置就是对一个“输入输出IO”的初始化配置,也就是对结构体“GPIO_InitStructure”进行初始化。这里面主要就是对那其中的五个参数初始化。
关于结构体“GPIO_InitTypeDef”详情可以Go To Definition...或者选中“GPIO_InitTypeDef”、按下F12,跳转到定义关于“”的定义,详情请看下面③的讲解。
③GPIO_InitTypeDef详情
参数1:GPIO_Pin引脚:GPIO_Pin_0
GPIO_Pin_15
参数2:GPIO_Mode模式: 输入GPIO_Mode_IN、输出GPIO_Mode_OUT、GPIO_Mode_AF复用功能、GPIO_Mode_AN模拟功能
参数3:GPIO_Speed速度: 低速GPIO_Speed_2MHz、中速GPIO_Speed_10MHz、高速GPIO_Speed_50MHz
参数4:GPIO_OType输出类型(只对输出起作用):推完输出GPIO_OType_PP、漏极输出GPIO_OType_OD
参数5:GPIO_PuPd上下拉: 浮空GPIO_PuPd_NOPULL、上拉GPIO_PuPd_UP、下拉GPIO_PuPd_DOWN
STM32F0的芯片软件兼容性很好,可以适用于F0的很多芯片(具体请看手册、或者亲自尝试)。
如果你喜欢我分享的内容,你又想了解更多相关内容,请关注文章开头的微信公众号,新内容持续更新中,后期将会有更多精彩内容出现。
没有更多推荐了,STM32F051使用内部时钟_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
STM32F051使用内部时钟
&&STM32F051使用内部时钟
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩4页未读,
定制HR最喜欢的简历
你可能喜欢21ic官方微信-->
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
关于STM32F0 使用内部时钟,并且配置到48M的配置代码
中级技术员, 积分 270, 距离下一级还需 30 积分
中级技术员, 积分 270, 距离下一级还需 30 积分
中级技术员, 积分 270, 距离下一级还需 30 积分
中级技术员, 积分 270, 距离下一级还需 30 积分
static void SetSysClock(void)
&&__IO uint32_t StartUpCounter = 0, HSEStatus = 0;
&&/* SYSCLK, HCLK, PCLK configuration ----------------------------------------*/
&&/* Enable HSE */& &
&&RCC-&CR &=~ ((uint32_t)RCC_CR_HSEON);
&&//if (HSEStatus == (uint32_t)0x01)
& & /* Enable Prefetch Buffer */
& & FLASH-&ACR |= FLASH_ACR_PRFTBE;
& & FLASH-&ACR |= (uint32_t)FLASH_ACR_LATENCY;
& & /* HCLK = SYSCLK */
& & RCC-&CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
& & /* PCLK = HCLK */
& & RCC-&CFGR |= (uint32_t)RCC_CFGR_PPRE_DIV1;
& & /*&&PLL configuration:&&= HSE *&&6 = 48 MHz */
& & RCC-&CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
& & RCC-&CFGR |= (uint32_t)(/*RCC_CFGR_PLLSRC_PREDIV1 |*/ RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL12);
& & RCC_MCOConfig(RCC_MCOSource_HSI);& && &&&
& & /* Enable PLL */
& & RCC-&CR |= RCC_CR_PLLON;
& & /* Wait till PLL is ready */
& & while((RCC-&CR & RCC_CR_PLLRDY) == 0)
& & /* Select PLL as system clock source */
& & RCC-&CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
& & RCC-&CFGR |= (uint32_t)RCC_CFGR_SW_PLL;& &
& & /* Wait till PLL is used as system clock source */
& & while ((RCC-&CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)
//&&{ /* If HSE fails to start-up, the application will have wrong clock
//& && && &configuration. User can add here some code to deal with this error */
---------------------
---------------------
最关键的: RCC_CFGR_PLLSRC 置0, PLLMULL 置 12 就是了
参考DISCOVERY的例程就可以了;
共<span id="liker_count_人点赞
技术达人, 积分 8471, 距离下一级还需 1529 积分
技术达人, 积分 8471, 距离下一级还需 1529 积分
技术达人, 积分 8471, 距离下一级还需 1529 积分
技术达人, 积分 8471, 距离下一级还需 1529 积分
最关键的: RCC_CFGR_PLLSRC 置0, PLLMULL 置 12 就是了
请教大神个问题,我直接把板子上的8M晶振去掉了,系统也还是工作。不知道这个情况下系统是不是用48M时钟工作呢?
---------------------
---------------------
把板子上的8M晶振去掉了,系统也还是工作。因为 HSI 还可以提供时钟继续工作.
这个情况下系统肯定不是 48M 了, 你可以用定时器 PWM 输出信号来验证
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
这段程序有问题吧,标题说,配置的是内部时钟,为什么你使能HSE呢????
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
这段程序有问题吧,标题说,配置的是内部时钟,为什么你使能HSE呢???? ...
是的哟,我也是看不明白了,我自己从103改过的,可以参考一下
RCC_DeInit();//将外设 RCC寄存器重设为缺省值&&
& && &&&RCC_HSICmd(ENABLE);//使能HSI& &
& && &&&while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);//等待HSI使能成功&&
& && &&&//FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);&&
& && &&&//FLASH_SetLatency(FLASH_Latency_2);&&
& && &&&RCC_HCLKConfig(RCC_SYSCLK_Div1);& && &// AHP不分频&&
& & & & & & & & & & & && &RCC_PCLKConfig(RCC_HCLK_Div1);& && &&&//APB clock = HCLK 不分频
& && &&&//设置 PLL 时钟源及倍频系数
& && &&&RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_8);//使能或者失能 PLL,这个参数可以取:ENABLE或者DISABLE& &
& && &&&RCC_PLLCmd(ENABLE);//如果PLL被用于系统时钟,那么它不能被失能&&
& && &&&//等待指定的 RCC 标志位设置成功 等待PLL初始化成功&&
& && &&&while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);&&
& && &&&//设置系统时钟(SYSCLK) 设置PLL为系统时钟源&&
& && &&&RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//选择想要的系统时钟& &
& && &&&//等待PLL成功用作于系统时钟的时钟源&&
& && &&&//&&0x00:HSI 作为系统时钟& &
& && &&&//&&0x04:HSE作为系统时钟& &
& && &&&//&&0x08:PLL作为系统时钟& &
& && &&&while(RCC_GetSYSCLKSource() != 0x08);//需与被选择的系统时钟对应起来,RCC_SYSCLKSource_PLL&&
共<span id="liker_count_人点赞
扫描二维码,随时随地手机跟帖
时间类勋章
技术高手奖章
人才类勋章
荣誉元老奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术领袖奖章
人才类勋章
无冕之王奖章
等级类勋章
奔腾之江水
发帖类勋章
时间类勋章
技术奇才奖章
人才类勋章
您需要登录后才可以回帖请教关于STM32F0中ADC的时钟问题_百度知道
请教关于STM32F0中ADC的时钟问题
我有更好的答案
而通常开发板都会使用外部晶振通过倍频使用,请使用外部晶振。 内部晶振最高只能倍频到64MHz,而使用外部晶振能够倍频到72MHz。 如果板子上确实有外部晶振上面所给的程序是使用内部晶振的
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。STM32F0(1)系统时钟 RCC 的配置
11:31:28来源: eefocus 关键字:&&&&
// STM32系统默认频率为 HSI -- 8 MHz// 将频率调整为 36Mhzvoid Clock_Init(void){// 为了使频率加倍,采用 PLL倍频的方法,PLL如果使用HSI,默认是 HSI / 2 = 4Mhz->CFGR |= &RCC_CFGR_PLLMUL9; &&&&&&&&&&&// PLL 9 倍频率 -- 4 * 9 = 36MHz&RCC->CFGR &= ~RCC_CFGR_PLLSRC_1; &&&&&&&// 选择PLL为时钟输入源 -- HSI &/ 2RCC->CFGR |= &RCC_CFGR_PPRE_DIV1; &&&&&&&&// 低速APB1预分频,最高36MhzRCC->CFGR |= &RCC_CFGR_HPRE_DIV1; &&&&&&&&// 高速APB2预分频,最高72Mhz&while(((RCC->CR) & RCC_CR_PLLRDY) != RCC_CR_PLLRDY) &&&&&&&&&&// 等待 PLL 时钟就绪RCC->CR |= RCC_CR_PLLON; &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&// PLL 时钟打开while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL) &&// 等待系统时钟切换成功RCC->CFGR |= RCC_CFGR_SW_PLL; &&&&&&&&&&&&&&&&&&&&&&&&&// 系统时钟切换为 PLL}
关键字:&&&&
编辑:什么鱼
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
热门关键词
最新视频课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。}

我要回帖

更多关于 stm32时钟系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信