久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3388|回復: 9
打印 上一主題 下一主題
收起左側

C語言結構體里面的整形數據是否可以轉換為字符串輸出呢?

[復制鏈接]
回帖獎勵 2 黑幣 回復本帖可獲得 2 黑幣獎勵! 每人限 2 次
跳轉到指定樓層
樓主
在調rtc的時候遇到了結構體,由于oled在顯示個位數字的時候不能自動在前面補零,所以我想到使用sprintf函數轉換數據補零,但是實際上,在使用sprintf函數以后,
程序就死在sprintf函數這里了,很是苦惱,有大佬知道這類結構體數據應該如何轉換顯示嗎


//年(24) 月(25) 日(26) 時(27) 分(28) 秒(29) 星(30) 期(31)
        struct tm time;
        time = Time_GetCalendarTime();
        char* year;
        sprintf(year,"%d",time.tm_year );
//        printf(year,"Time: %d-%d-%d   %02d:%02d:%02d \r\n", time.tm_year );
        OLED_ShowNum(8,2,*year,4,16,1); //我只實驗了year,如果不使用sprintf函數程序是正常的
        OLED_ShowCHinese(48,2,24);//年
        OLED_ShowNum(64,2,time.tm_mon+1,2,16,1);
        OLED_ShowCHinese(80,2,25);//月
        OLED_ShowNum(96,2,time.tm_mday,2,16,1);
        OLED_ShowCHinese(112,2,26);//日
        OLED_ShowNum(16,6,time.tm_hour,2,16,1);
        OLED_ShowCHinese(32,6,27);//時
        OLED_ShowNum(48,6,time.tm_min,2,16,1);
        OLED_ShowCHinese(64,6,28);        //分
        OLED_ShowNum(80,6,time.tm_sec,2,16,1);
        OLED_ShowCHinese(96,6,29);        //秒


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:470332 發表于 2020-3-26 14:51 | 只看該作者
char year[20];
sprintf(year,"%d",time.tm_year )
回復

使用道具 舉報

板凳
ID:248659 發表于 2020-3-26 20:08 | 只看該作者
moluxiyan 發表于 2020-3-26 14:51
char year[20];
sprintf(year,"%d",time.tm_year )

這種的我也嘗試過了,這一種的在調用的時候會在oled函數上報錯
..\main.c(133): error:  #167: argument of type "char *" is incompatible with parameter of type "u32"
如果給oled顯示變量改為數組形式,顯示又不對了呢,可能是我程序寫蒙了,一直不明白為什么,這個錯誤我再之前嘗試的時候有出現,按照百度的修改好像也無濟于事,現在腦闊真的有點嗡嗡的
回復

使用道具 舉報

地板
ID:470332 發表于 2020-3-27 09:12 | 只看該作者
xda 發表于 2020-3-26 20:08
這種的我也嘗試過了,這一種的在調用的時候會在oled函數上報錯
..\main.c(133): error:  #167: argument ...

char* year; 沒有指向任何內存,直接使用肯定會出錯
回復

使用道具 舉報

5#
ID:592807 發表于 2020-3-27 10:47 | 只看該作者
xda 發表于 2020-3-26 20:08
這種的我也嘗試過了,這一種的在調用的時候會在oled函數上報錯
..\main.c(133): error:  #167: argument ...

uint8_t year【20】;
sprintf(year,"%d",tim.tm_year);
你的time時一個tm結構體類型的變量,里面有多少變量我不知道,但是你time = Time_FetCalendarTie();什么意思?Time_FetCalendarTie()返回值是結構體變量類型嗎?
回復

使用道具 舉報

6#
ID:248659 發表于 2020-3-27 12:16 | 只看該作者
黃youhui 發表于 2020-3-27 10:47
uint8_t year【20】;
sprintf(year,"%d",tim.tm_year);
你的time時一個tm結構體類型的變量,里面有多 ...

/*******************************************************************************
* Function Name  : Time_GetCalendarTime
* Description    : 從RTC取當前時間的日歷時間(struct tm)
* Input          : None
* Output         : None
* Return         : struct tm
* Attention                 : None
*******************************************************************************/
struct tm Time_GetCalendarTime(void)
{
        time_t t_t;
        struct tm t_tm;

        t_t = (time_t)RTC_GetCounter();
        t_tm = Time_ConvUnixToCalendar(t_t);
        return t_tm;
}

這個是哪個函數的全部,里面返回的是結構體的數據
回復

使用道具 舉報

7#
ID:248659 發表于 2020-3-27 12:20 | 只看該作者
黃youhui 發表于 2020-3-27 10:47
uint8_t year【20】;
sprintf(year,"%d",tim.tm_year);
你的time時一個tm結構體類型的變量,里面有多 ...

time = Time_FetCalendarTie()
這一句按照我的原話應該是 time = Time_GetCalendarTime();
這一句是獲取時間的
回復

使用道具 舉報

8#
ID:592807 發表于 2020-3-27 13:13 | 只看該作者
xda 發表于 2020-3-27 12:20
time = Time_FetCalendarTie()
這一句按照我的原話應該是 time = Time_GetCalendarTime();
這一句是 ...

我用st7541  128128液晶屏顯示函數,

TH.png (5.18 KB, 下載次數: 28)

st7451 8080

st7451 8080
回復

使用道具 舉報

9#
ID:282850 發表于 2020-3-27 15:36 | 只看該作者
昨天改了一下幾年前寫的轉換函數 *Long2Str,原理是把Long拆位,每位存入一個Dat[i]中,返回Dat[]的指針。顯示函數是接收字符串再拆分顯示的。LCD_0816Print(uchar x,uchar y, char *dat),所以Long也就可以順利顯示了。
LCD_0816Print(1,5,"ABCD0345");
LCD_0816Print(3,5,Long2Str(3298784,4));    最后的4是小數的位數
估計得用此方法
回復

使用道具 舉報

10#
ID:248659 發表于 2020-3-28 10:56 | 只看該作者
黃youhui 發表于 2020-3-27 13:13
我用st7541  128128液晶屏顯示函數,

嘗試了一下,還是要報錯。。。編譯不通過
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av片免费 | 99国产精品99久久久久久粉嫩 | 亚洲视频二区 | 国产中文字幕亚洲 | 欧美在线视频网 | 成人免费一区二区三区视频网站 | 国产精品久久久 | 国产一区二区三区四区 | 一区二区在线不卡 | 久久免费看 | 婷婷二区| 日韩欧美亚洲一区 | 99热国产精品 | 精精精精xxxx免费视频 | 欧美综合一区 | 亚洲福利一区二区 | 国产亚洲网站 | 伊人网综合在线 | 国产精品久久久久久久午夜片 | 亚洲第一av网站 | 国产一区二区精品在线观看 | 97av在线| 国产中文字幕在线 | 亚洲小视频在线播放 | 欧美激情视频网站 | 91精品在线播放 | 天天爽夜夜爽精品视频婷婷 | 国产免费观看视频 | 欧美在线a | 国产欧美日韩在线 | 羞羞视频网站免费看 | 男女在线网站 | 日韩三区在线 | 国产a视频 | 欧洲免费毛片 | 亚洲精品乱码久久久久久按摩观 | 中文在线一区二区 | 99精品99 | 一级在线免费观看 | 日韩在线 | 99亚洲 |