你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32G431的RTC电子时钟

[复制链接]
jinglixixi 发布时间:2020-12-11 11:04
STM32G431内部配置有RTC计时器,将它与OLED屏配合即可实现一个电子时钟。

2 i- J! ^' G" c7 Z7 h* Q5 u
实现图1所示效果的主程序为:
  1. int main(void)
    # S% |; {1 r7 m+ j, N# x$ f
  2. {4 v% y& A) j% W1 K1 @  i
  3. /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    # t' J4 S, ~0 Q0 s* N5 {+ [
  4. HAL_Init();* P9 `2 w; |( Q, ~5 i4 [7 l
  5. /* Configure the system clock */
    8 s3 B4 N* |# b& j: R3 d
  6. SystemClock_Config();
    1 e7 L2 d2 W) d2 }* v
  7. GPIO_OLED_INIT();' `: P5 h; a5 n
  8. OLED_Init();5 |7 W5 c9 w# m6 w8 K- g: l3 v
  9. OLED_Clear();
    3 w* D3 z! Z8 g) ]
  10. OLED_ShowString(18,0,"STM32G431",16);0 l5 P' P1 b! }- {* Z
  11. OLED_ShowString(10,2,"OLED & RTC",16);5 H8 I, p; G3 m' A) y
  12. /* Initialize all configured peripherals */
    % Z: X" R( T9 @  q- N& ?) `' c
  13. MX_RTC_Init();3 e2 R, y) S% D6 N4 {1 p5 Q5 W; c+ f# |
  14. RTCStatus = 1;
    " e1 d  ?  k( {" B
  15. while (1)' S! x6 u& D7 u3 E$ a4 x3 A
  16. {. s- O$ z: l9 J5 M% a) v+ @2 |
  17. /* Display the updated Time and Date */
    3 ^; O& k4 l1 Q& u. N
  18. RTC_CalendarShow(aShowTime, aShowDate);
    5 _: z- M# i0 t( J7 ?0 T
  19. Delay(200);
    9 L/ x" f& D* b' [/ w
  20. }' q" W; m+ e% c4 F4 c  y  P0 `
  21. }
复制代码
1.jpg
                              
1  RTC电子时钟

3 G9 t8 a* g- e3 Y( j& {, t
实现RTC显示的函数为:
  1. static void RTC_CalendarShow(uint8_t *showtime, uint8_t *showdate)2 h: S( b- }, {
  2. {
    8 Z; c0 Y4 G; g2 D' v! e# V
  3. RTC_DateTypeDef sdatestructureget;# p! D, p" I& N7 q8 _
  4. RTC_TimeTypeDef stimestructureget;, m4 [2 X: b2 E  ~
  5. /* Get the RTC current Time */( O$ U4 C4 Z2 Y+ z9 f2 [
  6. HAL_RTC_GetTime(&hrtc, &stimestructureget, RTC_FORMAT_BIN);
    ; C$ b5 F; x0 Y, `2 s
  7. /* Get the RTC current Date */+ D4 M" M( w2 P3 Z) H0 W# R
  8. HAL_RTC_GetDate(&hrtc, &sdatestructureget, RTC_FORMAT_BIN);# K. R& `, {8 Q! r$ Z# q
  9. /* Display time Format : hh:mm:ss */
    % @! O- `, ^% D
  10. sprintf((char *)showtime, "%2d:%2d:%2d", stimestructureget.Hours, stimestructureget.Minutes, stimestructureget.Seconds);
    ) v* A  y' G* P4 O8 ^+ }
  11. OLED_ShowString(26,6,showtime,16);& V' D6 G9 r# f: a1 f( t
  12. /* Display date Format : mm-dd-yy */
    5 Y; A0 @6 J1 L' J5 L
  13. sprintf((char *)showdate, "%2d-%2d-%2d", 2000 + sdatestructureget.Year,sdatestructureget.Month, sdatestructureget.Date);# p# I; {2 A* h7 u7 S/ [
  14. OLED_ShowString(10,4,showdate,16);
    ! T$ y8 r1 M$ I) |/ \( U
  15. }
复制代码

# \0 H9 g* |+ N% ?% S9 u
调用的字符串显示函数为:
  1. void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size)8 v" A9 _2 w5 D
  2. {  m# X% l. [4 O3 U* H4 X
  3.     unsigned char j=0;
    2 b/ p' }. q3 V+ K9 H
  4.     while (chr[j]!='\0')7 ~3 T8 R. B. y9 ?
  5.     {       OLED_ShowChar(x,y,chr[j],Char_Size);
    3 R: _) z7 g! a8 d$ [/ G. B
  6.             x+=8;0 ~7 j4 h& L4 t$ Q; s% W% s% o7 M
  7.             if(x>120){x=0;y+=2;}$ d& `8 y$ v* P& q
  8.             j++;
    ; ]. r5 g, L# G$ V' R* x
  9.     }& g2 j* i5 B6 T; r, Z. z
  10. }
复制代码

( h- w, j. y1 w" U: K
由于例程所设置的初始时间是2018年,故需要在函数 MX_RTC_Init()中进行修改,修改后的运行效果如图2所示。
2.jpg
1 X  `. x/ m6 Z( y
2  校时后的显示效果
! w/ j& o0 X+ u0 r
收藏 评论5 发布时间:2020-12-11 11:04

举报

5个回答
网络孤客 回答时间:2020-12-11 12:03:37
看看时间准吗。
1 _  M, |  N& u有空我也玩玩。
jinglixixi 回答时间:2020-12-11 12:52:27
ldptest 发表于 2020-12-11 12:03
  Y4 _! h, u- `看看时间准吗。$ A4 J4 n5 X% C$ i) Z* ]
有空我也玩玩。
% X$ I6 |, i% O
计时尚可,长时间的误差可能会明显点儿。
Kevin_G 回答时间:2020-12-13 10:17:35
楼主,上源码
radio2radio 回答时间:2020-12-13 14:38:10
楼主,G431的RTC,有没有自动万年历功能?
6 A: ?1 o  ]0 s- k( b就是11月31日会不会自动进入12月1日,还有闰年修正等。' e* Q; r% l+ j; b+ l
jinglixixi 回答时间:2020-12-13 18:20:38
radio2radio 发表于 2020-12-13 14:382 @+ v- p/ O) T% t) {& n
楼主,G431的RTC,有没有自动万年历功能?
" e" X4 A, k4 o- z就是11月31日会不会自动进入12月1日,还有闰年修正等。, |# y: ?; S+ K- O- D
...
; v  ^' D$ g: g4 Z! E
我给你测了下,两者都没有问题。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版