发布网友 发布时间:2022-04-22 07:27
共3个回答
热心网友 时间:2022-06-17 17:00
rtc就是一个32位的计数器,只不过它的秒计时比一般定时器准一些,输入时钟震荡一次寄存器加1,如果开中断的话会进一次中断,但是这个寄存器的值到了23*3600+59*60+59之后(也就是计数1天后)不会自动清零,需要软件清零,像你追问的是可以这样用的,中断可以不开,热心网友 时间:2022-06-17 17:01
不一定啊……反正我开alarm中断怎么都不成,但是秒中断可以开的。追答STMF10x的RTC就是一个单纯的32bit计数器,假设你在1月1日的00:00:00启动,在到23:59:59时实际的数字是86399,到1月2日的00:00:01时就变成86401了……就是说不会修正为0,但你换算为真正的时分秒时才会出现00:00:00,比如这样的代码:
TimeVar=RTC_GetCounter()%86400;
THH = TimeVar / 3600; /* Compute hours */
TMM = (TimeVar % 3600) / 60; /* Compute minutes */
TSS = (TimeVar % 3600) % 60; /* Compute seconds */
实际转换的办法就是你提到的UNIX时间方式。
STM32F20X或者STM32F40X就是真正的RTC了,和读取DS1302或DS3231里的结果一样,读取到的就是时分秒年月日,比STM32F10X的方便多了。
RTC设置好之后,就是每秒加1的。
将计数换算为当前时间,就是UNIX时间方式。
热心网友 时间:2022-06-17 17:01
不一定哦,看你需要的