【银杏科技ARM+FPGA双核心应用】MicroPython系列十:RTC实时时...

[复制链接]
621|0
 楼主| 如意不如意 发表于 2020-7-7 18:28 | 显示全部楼层 |阅读模式
本帖最后由 如意不如意 于 2020-7-7 18:28 编辑

一、实验目的
使用micropython RTC向串口发送时间数据。

二、实验设备及平台
  • iCore3双核心板点击购买
  • Micro USB线
  • 电脑

三、实验原理
STM32的实时时钟(RTC)是一个独立的定时器,有一组连续计数的计数器,通过软件来对其进行相关的配置,可以提供时钟功能,通过修改计数器的值可以调整时钟,最终通过串口在终端显示时间。

四、实验步骤
  • 用数据线将iCore3的USB-OTG口与电脑相连;
  • 打开PYBFLASH磁盘,将代码包中的main.py文件替换到PYBFLASH的main.py,弹出磁盘;
  • 用数据线将iCore3的USB-UART口与电脑相连,将电源跳帽选择为USB-UART供电,iCore3重新上电,代码运行;
  • 在电脑上打开串口调试器连接相应串口(具体请在此电脑右击→管理→设备管理器中查看),波特率9600;

五、实验现象
在接收区可以看到显示的时间和日期,如下图所示:
fetch.php?media=icore3:icore3_micropython_10_1.jpg

六、实验程序
  1. # -*- coding: utf-8-*-
  2. # main.py -- put your code here!
  3. from pyb import UART #导入
  4. import pyb

  5. #定义串口4对象,波特率9600
  6. U4 = UART(4,9600)

  7. #定义RTC对象
  8. rtc = pyb.RTC()

  9. #设置RTC时钟
  10. #(year, month, day, weekday, hours, minutes, seconds, subseconds) weekday is 1-7 for Monday through Sunday. subseconds counts down from 255 to 0
  11. # rtc.datetime((2020, 6, 4, 4, 9, 13, 0, 0))

  12. #时钟校准
  13. #rtc.calibration(cal)

  14. old_time = (0,0,0,0,0,0,0,0)
  15. while True:
  16.     now_time = rtc.datetime()   #获取RTC时间
  17.     if now_time[:-1] != old_time[:-1]: #比较年月日时分秒,不同则向串口发送数据
  18.         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]))
  19.         old_time = now_time

代码包.zip (933 Bytes, 下载次数: 1)


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

本版积分规则

22

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部