stm32相关的配置

由于例程使用的主控芯片为STM32L151C8T6,而在本设计中使用的主控芯片为STM32L051C8T6,内核不一样,并且Cube库相关的函数接口及配置也会有不同,所以芯片的驱动所以做修改。

RTC 的配置

此例程中,RTC被当做定时器使用,用于定时执行任务。

例程中,RTC使用外部LSE的32.768Khz的晶振作为时钟源,

而在本设计中,使用内部LSI作为RTC的时钟源,需要重新设置RTC的分频参数,使得程序正常运行。

注意MCU内部的低速晶振往往误差很大,在使用时很大可能会造成模块接收不到下行包,因为接收对接收窗口的时间要求比较严格,所以如果是对下行要求比较严格的环境,建议不要使用内部晶振。

根据Fck_spre = Frtcclk/(PREDIV_S+1)/(PREDIV_A+1)

例程中RTC的工作频率为32.778/(3+1)/(3+1) = 2.048Khz,

而内部晶振的频率约为37Khz,故PRVEDIV_S和PREDIV_A的值需要改变。

37/2.048 ~= 18;
数据手册里面有这样一句话:
Note: When both prescalers are used, it is recommended to configure the asynchronous
prescaler to a high value to minimize consumption.
所以:18 = 9*2;故设置PREDIV_A = 8,PREDIV_S = 1;

由于

37/18 ~= 2.055

1/2.055 ~= 0.486618

故此处的宏定义需要稍作修改

 /*!
* RTC Time base in ms
*/
#define RTC_ALARM_TICK_DURATION 0.486618 // 1 tick every 466us
#define RTC_ALARM_TICK_PER_MS 2.055 // 1/2.055 = tick duration in ms ((37/(8+1)/(2+1)) = 2.055Khz)

最新文章

  1. Python AES - base64 加解密
  2. CF #374 (Div. 2) D. 贪心,优先队列或set
  3. maven引入json-lib的正确方法
  4. Tmux
  5. Gulp Babel AMD转换例子
  6. thinkphp关联模型的注意大小写
  7. tcpdump 时报ServFail 0/0/1 (97)
  8. redis专题--slow log详解
  9. PL/SQL Developer自动补全SQL技巧
  10. Java如何连接到MySQL数据库的
  11. hdu 5630 Rikka with Chess
  12. PeopleRank从社交网络中发现个体价值
  13. nginx之fastcgi
  14. 【经验分享】Hydra(爆破神器)使用方法
  15. web报表工具FineReport常用函数的用法总结(数学和三角函数)
  16. python学习笔记(三)、字典
  17. JQuery operate xml
  18. 外部访问docker容器(docker run -p/-P 指令)
  19. Oracle 实例名/服务名 请问SID和Service_Name有什么区别啊?
  20. (零)SQL server安装配置

热门文章

  1. 个人永久性免费-Excel催化剂功能第56波-获取Excel对象属性相关自定义函数
  2. 2-1. 基于OpenSSL的传输子系统实现
  3. 小白开学Asp.Net Core《三》
  4. dedecms新建内容模型“把数据保存到数据库附加表时出错‘xxx’出错”错误的原因分析和解决方案(转)
  5. linux初学者-ftp篇(一)
  6. UnityWebSocket
  7. jango简介
  8. 使用secureCRT上传下载
  9. 关于java飞机躲炮弹的一些对象说明(带源码)
  10. python协程详解