搜索
查看: 3576|回复: 9

[求助] STM8L RTC计时的问题

[复制链接]

该用户从未签到

30

主题

579

帖子

12

蝴蝶豆

金牌会员

最后登录
2020-3-22
发表于 2018-8-30 08:47:30 | 显示全部楼层 |阅读模式
我在使用STM8L做内部RTC做时钟的时候,发现了一个问题。时钟计时计到了超过24时。昨天下午我设置了一个初始时间,今天早上8:19的时候读取STM8内部RTC时间显示的是 2018.8.29  32:19:05  时间计时到了32时,RTC不应该是满24,自动切换的吗
回复

使用道具 举报

该用户从未签到

9

主题

744

帖子

287

蝴蝶豆

论坛元老

最后登录
2021-3-27
发表于 2018-8-30 09:18:48 | 显示全部楼层
估计是BCD码的问题,切换一下应该就可以了。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

1742

帖子

241

蝴蝶豆

论坛元老

最后登录
2021-4-22
发表于 2018-8-30 09:22:59 | 显示全部楼层
估计是压缩BCD码的处理问题,这个注意处理一下

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

579

帖子

12

蝴蝶豆

金牌会员

最后登录
2020-3-22
 楼主| 发表于 2018-8-30 09:39:59 | 显示全部楼层
楼上两位,请说具体一点。意思是格式选择BCD就可以避免还是需要注意其他什么。该怎么处理
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

2167

帖子

32

蝴蝶豆

论坛元老

最后登录
2023-2-9
发表于 2018-8-30 13:17:50 | 显示全部楼层
BCD码(Binary-Coded Decimal‎)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。按照这个这个规则32对应的是20点。以下是标准库的转换源码。
  1. 02741 /**
  2. 02742   * @brief  Convert from 2 digit BCD to Binary.
  3. 02743   * @param  Value: BCD value to be converted.
  4. 02744   * @retval Converted word
  5. 02745   */
  6. 02746 static uint8_t RTC_Bcd2ToByte(uint8_t Value)
  7. 02747 {
  8. 02748   uint8_t tmp = 0;
  9. 02749   tmp = ((uint8_t)(Value & (uint8_t)0xF0) >> (uint8_t)0x4) * 10;
  10. 02750   return (tmp + (Value & (uint8_t)0x0F));
  11. 02751 }
复制代码


评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

320

帖子

11

蝴蝶豆

金牌会员

最后登录
2020-4-21
发表于 2018-8-30 15:13:06 | 显示全部楼层
学习了
回复

使用道具 举报

该用户从未签到

91

主题

4756

帖子

4

蝴蝶豆

论坛元老

最后登录
2021-2-27
发表于 2018-8-31 01:15:51 | 显示全部楼层
bcd码也叫8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,这十个数每个数都有自己的8421码:  0=0000   1=0001   2=0010   3=0011   4=0100   5=0101   6=0110   7=0111   8=1000   9=1001
所以24的bcd码为:0010 0100

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

579

帖子

12

蝴蝶豆

金牌会员

最后登录
2020-3-22
 楼主| 发表于 2018-8-31 09:04:42 | 显示全部楼层
谢谢大家 我查了代码  我是选了BIN格式的RTC 出的这个问题   而且当时的32时是 早上8点
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

蝴蝶豆

新手上路

最后登录
2021-11-23
发表于 2019-7-17 21:34:11 | 显示全部楼层
wanyisq 发表于 2018-8-31 09:04
谢谢大家 我查了代码  我是选了BIN格式的RTC 出的这个问题   而且当时的32时是 早上8点 ...

您好!请问您是怎么设置BIN格式和BCD格式的?datasheet上好像写的都是BCD格式。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

蝴蝶豆

新手上路

最后登录
2021-11-23
发表于 2019-7-17 21:36:07 | 显示全部楼层
wanyisq 发表于 2018-8-31 09:04
谢谢大家 我查了代码  我是选了BIN格式的RTC 出的这个问题   而且当时的32时是 早上8点 ...

我碰到的问题和你的是一样,也是早上8点变32点,不知道如何设置,请赐教,谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-3 01:16 , Processed in 1.181025 second(s), 40 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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