本帖最后由 ybhuangfugui 于 2016-5-14 00:10 编辑 今天讲解“STM32F103 RTC闹钟”,说起“闹钟”大家肯定不会陌生,基本上我们每天都在接触。今天说的“RTC闹钟”就是我们现实生活中的闹钟,只是今天站在技术知识的角度来看待“闹钟”。由于这一阶段定位的是基础的知识,所以今天提供的软件例程也是相对简单一点的,但明白今天的知识,相信自己都会写闹钟程序了,后期我会更新日历及闹钟的综合知识。 每天讲解的不仅仅是基础,而是重点,不起眼的重点,容易被人忽视的重点。关注微信公众号“EmbeddDeveloper”还有更多精彩等着你。 我的文章与网上其他文章不同之处在于:1.提供讲解的软件工程; 2.图片代码比直接贴出源代码容易阅读。 今天提供并讲解的软件工程,基于前面的软件工程“TIM延时”修改而来。若有疑问,请关注微信公众号获取更多信息。 本着免费分享的原则,将讲解的工程源代码分享给大家,还望看到的朋友分享、关注和推广一下微信公众号,增加一下人气。 每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。 今天的软件工程下载地址(360云盘): http://yunpan.cn/cSsN8ExwLMBbj 访问密码 529c STM32F10x的资料可以在我360云盘下载: http://yunpan.cn/crBUdUGdYKam2 访问密码 ca90 工程概要说明:今天的软件上电将时钟设置为0秒,闹钟设置为10秒,也就是说上电之后的第10秒会相应“闹钟中断”。测试的现象就是:平时间隔500ms串口打印数据“RTC Test..”伴随LED变化一次,但第10秒相应闹钟中断后,就有新的想象(串口打印“Alarm arrival.”伴随LED快速变化3次)。 关于“STM32F103RTC闹钟” 我把重要的几点在下面分别讲述,若不明白,请关注微信公众号“EmbeddDeveloper”查阅或留言。 一、RCC时钟配置 该函数位于bsp.c文件下面; 使能RCC时钟:RCC_APB1Periph_PWR 和 RCC_APB1Periph_BKP,这里的RCC和昨天的一样,同时还配置“RCC_RTCCLKSource_LSE”(在RTC_Configuration)。 二、RTC配置 该函数位于rtc.c文件下面; 分频值为32767,也就是1秒计数一次。使能RTC_IT_ALR闹钟中断,在设置的闹钟时间到来就会执行闹钟中断。 三、RTC初始化 该函数位于rtc.c文件下面; 这里主要讲解时间和闹钟初始化的值,都应该明白这个吧。 四、NVIC配置 该函数位于bsp.c文件下面; 必须配置NVIC,否则中断不会响应。 五、主函数 该函数位于main.c文件下面; 主要就是实现的现象。 六、今天的重点提示 重点主要在第二点“RTC配置”,需要细心阅读手册,结合代码,相信都能理解。 |