找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2913|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STM32F103漢字、圖片、時(shí)鐘顯示源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:372936 發(fā)表于 2019-6-18 22:17 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最小系統(tǒng)板開(kāi)發(fā)板STM32F103無(wú)SD卡用片內(nèi)flash顯示漢字、圖片、時(shí)鐘

單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"
  7. #include "image2lcd.h"
  8. #include "stdlib.h"
  9. #include "text.h"
  10. #include "usmart.h"         
  11. #include "rtc.h"

  12.        
  13. extern const u8 gImage_image1[];//圖片數(shù)據(jù)(包含信息頭),存儲(chǔ)在image1.c里面.

  14. int main(void)
  15. {
  16.         u8 t=0;       
  17.         u8 i=0;
  18.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  19.         LED_Init();                             //LED端口初始化
  20.         usmart_dev.init(SystemCoreClock/1000000);        //初始化USMART       
  21.         RTC_Init();                
  22.         delay_init();             //延時(shí)初始化
  23.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級(jí)分組2
  24.         LED_Init();                          //初始化與LED連接的硬件接口
  25.         uart_init(115200);
  26.         LCD_Init();
  27. //        LCD_Clear(GRAY);

  28.          
  29.         POINT_COLOR=RED;
  30.         LCD_Show_Font(20,10,0);              //顯示智能螃蟹投食器     
  31.         LCD_Show_Font(50,10,1);
  32.         LCD_Show_Font(80,10,2);
  33.         LCD_Show_Font(110,10,3);
  34.         LCD_Show_Font(140,10,4);
  35.         LCD_Show_Font(170,10,5);
  36.         LCD_Show_Font(200,10,6);

  37.         POINT_COLOR=BLACK;
  38.         LCD_Show_Font(30,45,7);         //飼料重量:
  39.         LCD_Show_Font(50,45,8);
  40.         LCD_Show_Font(70,45,9);
  41.         LCD_Show_Font(90,45,10);
  42.         LCD_Show_Font(110,45,11);
  43.          
  44.         LCD_Show_Font(30,70,12);                //出料速度:
  45.         LCD_Show_Font(50,70,13);
  46.         LCD_Show_Font(70,70,14);         
  47.         LCD_Show_Font(90,70,15);
  48.         LCD_Show_Font(110,70,16);
  49.        
  50.         LCD_Show_Font(30,95,17);                //預(yù)計(jì)投喂時(shí)長(zhǎng):
  51.         LCD_Show_Font(50,95,18);
  52.         LCD_Show_Font(70,95,19);
  53.         LCD_Show_Font(90,95,20);
  54.         LCD_Show_Font(110,95,21);         
  55.         LCD_Show_Font(130,95,22);
  56.         LCD_Show_Font(150,95,23);
  57.          

  58.         POINT_COLOR=BLUE;
  59.         LCD_Show_Font(75,265,24);                //顯示上海海洋大學(xué)
  60.         LCD_Show_Font(100,265,25);
  61.         LCD_Show_Font(125,265,26);
  62.         LCD_Show_Font(150,265,27);
  63.         LCD_Show_Font(175,265,28);
  64.         LCD_Show_Font(200,265,29);
  65.        
  66.         POINT_COLOR=BLUE;
  67.         LCD_ShowString(72,295,150,12,12,"Shanghai Ocean University");         

  68.         POINT_COLOR=BLUE;          
  69.         LCD_ShowString(120,49,200,16,16," 50Kg");                //數(shù)據(jù)
  70.         LCD_ShowString(120,74,200,16,16," 10g/s");
  71.         LCD_ShowString(160,99,200,16,16," 1-1.5h");
  72.          
  73.                   
  74. ///////////////////////////////////////////////////////////////////////////////////////////////////         
  75.             POINT_COLOR=RED;          
  76.                 LCD_ShowString(180,55,200,24,24,"^_^");                //顯示字符串(x,y,長(zhǎng)度,大小,大小,字符串)
  77. //                LCD_ShowString(60,80,200,16,16,"Shanghai");
  78. //                LCD_ShowString(60,100,200,16,16,"Ocean University");
  79.                 POINT_COLOR=BLACK;
  80. //                LCD_ShowString(32,120,200,12,12,"2019/6/10");
  81.                
  82.                 LCD_Fill(20,200,110,220,999);     //顏色塊1 (x1,y1, x2,y2, cplor)
  83.                 LCD_Fill(110,200,220,220,777);    //顏色塊2
  84.                 LCD_Fill(20,221,110,240,555);     //顏色塊3
  85.                 LCD_Fill(110,221,220,240,333);    //顏色塊4
  86.                
  87.                
  88.                 POINT_COLOR=GREEN;
  89.                 LCD_DrawLine(0,  37,238,37);      //畫(huà)綠線1  (x1,y1, x2,y2)
  90. //                LCD_DrawLine(0,140,240,140);          //畫(huà)綠線2
  91.                 POINT_COLOR=BLUE;
  92.                 LCD_DrawLine(65,258,240,258);     //畫(huà)藍(lán)線
  93.                
  94. /*                POINT_COLOR=BLUE;
  95.                 LCD_DrawRectangle(30, 150, 60, 180);     //畫(huà)矩形  (x1,y1, x4,y4)
  96.                 LCD_Draw_Circle(85,165,15);       //畫(huà)圓        (x1,y1,r)
  97.                 LCD_ShowxNum(29,188,888888888,9,12,0x80);   //顯示數(shù)字        (x1,y1,數(shù)字,字?jǐn)?shù),大小,方式)
  98.                 LCD_Color_Fill(110,150,150,190,(u16*)1234);        //填充彩色塊
  99. */               
  100.                 POINT_COLOR=BLUE;
  101.                 LCD_DrawLine(165,158,215,158);          //畫(huà)五角星
  102.                 LCD_DrawLine(190,140,170,180);          
  103.                 LCD_DrawLine(190,140,210,180);     
  104.                 LCD_DrawLine(165,158,210,180);          
  105.                 LCD_DrawLine(215,158,170,180);     


  106. //顯示時(shí)間
  107.         POINT_COLOR=BLACK;//設(shè)置字體為顏色
  108.         LCD_ShowString(30,130,200,16,16,"    -  -  ");         //年:月:日  
  109.         LCD_ShowString(30,165,200,16,16,"  :  :  ");         //時(shí):分:秒                   
  110.          while(1)
  111.         {                                                                    
  112.                 if(t!=calendar.sec)
  113.                 {
  114.                         t=calendar.sec;
  115.                         LCD_ShowNum(30,130,calendar.w_year,4,16);                        //顯示年                                                  
  116.                         LCD_ShowxNum(70,130,calendar.w_month,2,16,0x80);        //顯示月                                                  
  117.                         LCD_ShowxNum(94,130,calendar.w_date,2,16,0x80);        //顯示日
  118.                         switch(calendar.week)                                                                //顯示星期
  119.                         {
  120.                                 case 0:
  121.                                         LCD_ShowString(30,148,200,16,16,"Sunday   ");
  122.                                         break;
  123.                                 case 1:
  124.                                         LCD_ShowString(30,148,200,16,16,"Monday   ");
  125.                                         break;
  126.                                 case 2:
  127.                                         LCD_ShowString(30,148,200,16,16,"Tuesday  ");
  128.                                         break;
  129.                                 case 3:
  130.                                         LCD_ShowString(30,148,200,16,16,"Wednesday");
  131.                                         break;
  132.                                 case 4:
  133.                                         LCD_ShowString(30,148,200,16,16,"Thursday ");
  134.                                         break;
  135.                                 case 5:
  136.                                         LCD_ShowString(30,148,200,16,16,"Friday   ");
  137.                                         break;
  138.                                 case 6:
  139.                                         LCD_ShowString(30,148,200,16,16,"Saturday ");
  140.                                         break;  
  141.                         }
  142.                         LCD_ShowxNum(30,165,calendar.hour,2,16,0x80);                //顯示時(shí)                                                          
  143.                         LCD_ShowxNum(54,165,calendar.min,2,16,0x80);                //顯示分                                                          
  144.                         LCD_ShowxNum(78,165,calendar.sec,2,16,0x80);                //顯示秒
  145.                         LED0=!LED0;
  146.                 }       
  147.                 delay_ms(10);
  148.                
  149. //顯示圖片
  150.                 while(1)
  151.                 {                  
  152.                         if(i==0)
  153.                         {
  154.                                 image_display(5,255,(u8*)gImage_image1);//在指定地址顯示圖片
  155.                         }
  156.                         i++;
  157.                         if(i>10)i=0;
  158.                         LED0=!LED0;       
  159.                         break;       
  160.                 }
  161.        
  162.         };


  163.                
  164. }
復(fù)制代碼

所有資料51hei提供下載:
修改TFT圖文顯示.7z (308.98 KB, 下載次數(shù): 52)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:611378 發(fā)表于 2020-5-7 19:38 | 只看該作者
頂,好,可以 完美
回復(fù)

使用道具 舉報(bào)

板凳
ID:918601 發(fā)表于 2021-5-10 16:20 來(lái)自手機(jī) | 只看該作者
我買(mǎi)了stm32開(kāi)發(fā)板,準(zhǔn)備試試。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表