STM32實時時鐘實驗中,怎樣在小於10的數字前加零

STM32 的實時時鐘(Real-Time Clock,簡稱RTC)是一個獨立的定時器。 STM32 RTC 模塊擁有一組連續計數

的計數器,在相應軟件配置下,可提供時鐘日曆的功能。修改計數器的值可以重新設置系統當前的時間和日期。

在RTC實驗中,我們在正點原子的例程中使用到的顯示數字的函數爲 void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size),這個函數前兩個參數是顯示數字的座標;第三個參數是要顯示的數字爲32位的,所以最大能顯示2^(32-1);第四個參數是數字的位數,比如2018,則len=4;第五個參數是字體大小12/16/24.如果我們使用這個函數來顯示我們想要的日期,LCD顯示出來的效果如圖1所示:


圖1

這裏我們可以看到,當月份或者某一天某一時分秒的數小於10時,我們只能看到LCD對應的數字,空了一小格本來是0,卻沒有添加上去,覺着看着很不爽。我也是想了很久,覺得應該是需要重新寫一下這個函數,但是我們打開LCD.C文件仔細再看看一些裏面的功能函數嗎,就可以看到,其中有這樣一個函數 void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode),這個函數的參數前面五個我就我繼續解釋了,因爲和前面 void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size)差不多,在這裏就多了一個參數 u8 mode.這裏在函數上面的註釋有這樣幾排解釋

//[7]:0,不填充;1,填充0.

//[6:1]:保留

//[0]:0,非疊加顯示;1,疊加顯示.

我們看到這個mode被定義是一個八位的數,也就是從0~1111 1111,第1位到第6位不管,第7位爲1則會在不足兩位數的數錢自動加0,而如果第七位爲0,則不會,效果同函數 void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size)一樣,如圖1所示,如果我們將第七位改爲0則會出現如圖2所示的效果,比如mode=0x80.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章