
本次实验是通过启用片内的RTC功能实现日期及时间读写操作。 首先进入CubeMX,设置好RTC,为了方便控制,同时启用了TIM14用于毫秒计数。 测试过程是通过TIM14的中断,对全局变量ms进行自增,然后在主循环中对ms进行判断,当达到500毫秒时,对LED_GREEN的电平进行翻转。达到1秒时,对变量second进行加1,然后将当前的时期及时间通过串口发送至上位机。当second达到60秒时,读取一次片内RTC的时间及日期值。 下图为初始化及启用毫秒定时的代码: 为了方便操作,定义了年月日时分秒的全局变量: 下面是从串口获得初始日期及时间的代码: 收到串口的日期和时间数据后,调用日期和时间的设置函数: 其中星期几是通过函数计算获得的,代码如下: 下面分别是日期和时间读取的函数: 测试的结果达到了预期的目的,可以顺利地对RTC中的日期和时间进行读写操作。 不过芯片内的RTC实用价值不大,因为在重新上电的过程中,RTC会重启,需要重新设置日期和时间。真正要具备实用价值,要么就是添加日历时间芯片,其通过一颗小电池来维持芯片的时钟持续运转;要么就是通过联网来获得实时时间。 |
STM32C092如果不使用CAN,内存可不可以拿出来用。
NUCLEO-C031C6开发板测试1——点灯及用户按键
NUCLEO-C031C6开发板测试2——定时器及PWM应用
STM32C051K8T6电路这样设计对不对
STM32C031C6delay代码的困惑
STM32c031c6 SPI Slave Transmit Only模式的疑问
STM32C031C6开发板的UART2的收发问题?
从哪里可以下载NUCLEO-C3C6开发板的范例?
stm32c011的NRST引脚复用问题
求STM32C011J4x STM32C011J6x 的标准库。