OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3732|回复: 2

arduino使用stm32f1, 读取RTC,TM1637显示

[复制链接]

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2012-12-29
在线时间
11 小时
发表于 2017-3-14 22:49:09 | 显示全部楼层 |阅读模式
RTC_TM1637_01.jpg
RTC_TM1637_00.jpg
RTC_TM1637_02.jpg
RTC_TM1637_03.jpg
RTC_TM1637_04.jpg
RTC_TM1637_05.jpg
RTC_TM1637_06.jpg
RTC_TM1637_07.JPG
最后结果 发现,我设置的时间 跟读取的对不上,
而且时间也没跳,是不是读了别的那个地址。
那个高手帮忙看看。。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2012-12-29
在线时间
11 小时
 楼主| 发表于 2017-3-14 22:54:15 | 显示全部楼层
本帖最后由 wangrupin 于 2017-3-14 22:57 编辑

高手们,帮忙看看, 哪里写错?

开发环境搭建 见:http://www.openedv.com/forum.php?mod=viewthread&tid=27100
TM1637的arduino库:https://github.com/avishorp/TM1637

代码:
#include <Arduino.h>
#include <TM1637Display.h>
#include "RTClock.h"
//showNumberDec(int num, bool leading_zero, uint8_t length, uint8_t pos)
//display.showNumberDec(8,true);   Show decimal numbers with/without leading zeros
//display.showNumberDec(0153, True, 4, 0); showNumberDec(int num, bool leading_zero, uint8_t length, uint8_t pos)
#define BOARD_LED_PIN PC13  // Module connection pins (Digital Pins)
#define CLK PB6
#define DIO PB7
TM1637Display display(CLK, DIO);
uint8_t data[]={ 0xff, 0xff, 0xff, 0xff };
RTClock rTime;
time_t timeR;
struct tm *tr;
void setup()
{
  pinMode(BOARD_LED_PIN, OUTPUT);  
  //RTClock(RTCSEL_LSE, 0);  //LSE should be 32768 Hz.
  rtc_init(RTCSEL_LSE);//LSE should be 32768 Hz.
  rtc_set_prescaler_load(0x7fff);//32767+1 Hz.
  delay(1000);     
  display.setBrightness(0x0f);
  display.setSegments(data);
  delay(5000);
timeR=0x58C85A49;
rTime.setTime(timeR);
  data[1] &= 0x7F;
  display.setSegments(data);
  delay(1000);
}
void loop()
{   
  volatile uint8_t ss,mm,hh,m0,m1,h0,h1;
  rTime.getTime(tr);
  ss=tr->tm_sec;
  mm=tr->tm_min;
  hh=tr->tm_hour;
  m1=mm/10;
  m0=mm%10;
  h1=hh/10;
  h0=hh%10;
  data[0] = display.encodeDigit(h1);
  data[1] = display.encodeDigit(h0);
  data[2] = display.encodeDigit(m1);
  data[3] = display.encodeDigit(m0);
  data[1] |= 0x80;
  display.setSegments(data);
  digitalWrite(BOARD_LED_PIN, LOW);
  delay(500);
  data[1] &= 0x7F;
  display.setSegments(data);
  digitalWrite(BOARD_LED_PIN, HIGH);
  delay(500);
}
回复 支持 反对

使用道具 举报

0

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-5-17
在线时间
12 小时
发表于 2019-12-22 11:18:42 | 显示全部楼层
现在网上都是4位显示的程序和库,不知道谁玩过带键盘的驱动
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-21 07:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表