stm32 RTC时钟设置能不能用毫秒
具体的程序里面写的是
RTC_SetAlarm(SENDTIME+RTC_GetCounter());
进入原函数看看发现是: void RTC_SetAlarm(uint32_t AlarmValue) {RTC_EnterConfigMode();/* Set the ALARM MSB word */RTC->ALRH = AlarmValue >> 16;/* Set the ALARM LSB word */RTC->ALRL = (AlarmValue & RTC_LSB_MASK);RTC_ExitConfigMode(); }
这样我写个测试
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>int main()
{
// char a[8] = "0x0000ffff";
// uint32_t b = strtoul(a, NULL, 16);uint32_t AlarmValue = 300007;printf("32:%d\n", AlarmValue); // 取整并打印结果printf("1:%04X\n", AlarmValue); // 取整并打印结果AlarmValue >> 16;printf("1:%d\n", AlarmValue); // 取整并打印结果AlarmValue=AlarmValue & 0x0000FFFF;printf("1:%d\n", AlarmValue); // 取整并打印结果printf("1:%04X\n", AlarmValue); // 取整并打印结果printf("1:%f\n", AlarmValue); // 取整并打印结果return 0;}
可以看见打印出来:能看出来你实际上的是毫秒 设置300007 和设置300.07 效果一样,我不知道是不是个例,感觉C语言好高级