| **银杏科技有限公司旗下技术文档发布平台** |||| |技术支持电话|**0379-69926675-801**||| |技术支持邮件|Gingko@vip.163.com||| ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | V1.0 | 2020-06-15 | gingko | 初次建立 | ===== 例程十:【micropython】RTC实时时钟实验 ===== ==== 一、实验目的 ==== 使用micropython RTC向串口发送时间数据。 ==== 二、实验设备及平台 ==== - iCore3双核心板[[https://item.taobao.com/item.htm?id=524229438677|点击购买]] - Micro USB线 - 电脑 ==== 三、实验原理 ==== STM32的实时时钟(RTC)是一个独立的定时器,有一组连续计数的计数器,通过软件来对其进行相关的配置,可以提供时钟功能,通过修改计数器的值可以调整时钟,最终通过串口在终端显示时间。 ==== 四、实验步骤 ==== - 用数据线将iCore3的USB-OTG口与电脑相连; - 打开PYBFLASH磁盘,将代码包中的main.py文件替换到PYBFLASH的main.py,弹出磁盘; - 用数据线将iCore3的USB-UART口与电脑相连,将电源跳帽选择为USB-UART供电,iCore3重新上电,代码运行; - 在电脑上打开串口调试器连接相应串口(具体请在此电脑右击->管理->设备管理器中查看),波特率9600; ==== 五、实验现象 ==== 在接收区可以看到显示的时间和日期,如下图所示: {{ :icore3:icore3_micropython_10_1.png?direct |时间信息}} ==== 六、实验程序 ==== # -*- coding: utf-8-*- # main.py -- put your code here! from pyb import UART #导入 import pyb #定义串口4对象,波特率9600 U4 = UART(4,9600) #定义RTC对象 rtc = pyb.RTC() #设置RTC时钟 #(year, month, day, weekday, hours, minutes, seconds, subseconds) weekday is 1-7 for Monday through Sunday. subseconds counts down from 255 to 0 # rtc.datetime((2020, 6, 4, 4, 9, 13, 0, 0)) #时钟校准 #rtc.calibration(cal) old_time = (0,0,0,0,0,0,0,0) while True: now_time = rtc.datetime() #获取RTC时间 if now_time[:-1] != old_time[:-1]: #比较年月日时分秒,不同则向串口发送数据 U4.write('%s:%s:%s %s:%s:%s\r\n'%(now_time[4],now_time[5],now_time[6],now_time[0],now_time[1],now_time[2])) old_time = now_time