找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3801|回復(fù): 2
收起左側(cè)

stm32f103溫度采集折線圖源程序

[復(fù)制鏈接]
ID:142059 發(fā)表于 2019-8-7 12:01 | 顯示全部樓層 |閱讀模式
本帖最后由 Angle145 于 2019-8-8 16:32 編輯

51hei圖片20190808163101.jpg MDK里把C99勾上,如還有問題的話請根據(jù)編譯提示自己修改。(部分人的編譯器會報錯)。 紅線:前天  黃線:昨天  綠線:今天。串口(串口5)發(fā)送hstytemp//會接收到7天內(nèi)溫度值,發(fā)送setsystime=年/月/日/時.分.秒//即可設(shè)置RTC。其他指令請到源碼中查看。LCD:2.8寸320x240
RTC設(shè)置頁面(功能已實(shí)現(xiàn)).jpg

FSC_STOSV4.9.7_ucGUI多頁面溫度折線圖(20190625).7z

1.07 MB, 下載次數(shù): 37, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報

ID:328014 發(fā)表于 2019-8-8 01:43 | 顯示全部樓層
好東東啊,樓主的主程序:
  1. #include "fsc_stos.h"  //使用多任務(wù)內(nèi)核

  2. int main(void)
  3. {
  4.   OS_MAIN();  //請到APP.c寫代碼。
  5. }

  6. /*本工程介紹:

  7. 2.8寸ISP彩屏
  8. FSC_STOS+uCGUI
  9. 主界面:24h溫度折線圖
  10.        綠線:今天溫度
  11.        黃線:昨天溫度
  12.        紅線:前天溫度
  13. 觸屏:長按2s以上進(jìn)入主設(shè)置界面
  14.       滑動:(按下屏幕,稍停0.5s左右再滑動,成功率較大)
  15.            向左-查看上一天溫度折線圖,最大可查看7天前   此方式靈敏度一般
  16.            向右-查看后一天溫度折線圖,左右循環(huán)查看      此方式靈敏度一般
  17.            向上-關(guān)閉前兩天的折線同屏顯示(方便對比)      此方式不太靈敏
  18.            向下-打開前兩天的折線同屏顯示               此方式不太靈敏
  19. 快捷指令:串口助手發(fā)送:
  20.          time=1919.5.4.13.15.10//      //年月日時分鈔,以//結(jié)束  設(shè)置RTC時間
  21.          hstytemp//                    //查看7天內(nèi)的溫度情況(內(nèi)存夠大的話可以無限保存任意天數(shù)的溫度信息)

  22. 工程文件結(jié)構(gòu):
  23.    Application文件夾存放GUI界面,WM_開頭的C文件對應(yīng)一個界面
  24.          Driver文件夾:驅(qū)動
  25.          HardwareDriver文件夾:板載的特殊硬件驅(qū)動
  26.          
  27.          GUI包含的文件夾:從AntiAlias到WM
  28.                其中:
  29.                                       有關(guān)移植部分:
  30.                                       GUI_X(帶X表示外部,可修改)移植修改對象
  31.                                            GUI_X.c為時鐘配置,即將硬件平臺的定時器脈沖注入GUI成為GUI的運(yùn)行動力
  32.                                                                                   (裸機(jī)工程時,一般作一個全局變量放在外部定時器的中斷里累加即可,定時1ms)
  33.                    GUI_X_Touch.c為觸屏移植,把觸屏的兩個xy坐標(biāo)獲取函數(shù)聲進(jìn)來調(diào)用即可。
  34.                                                                          參考:
  35.                                                                                                         int  GUI_TOUCH_X_MeasureX(void) {  //獲取X點(diǎn)坐標(biāo) (GUI提供的接口函數(shù))
  36.                                                                                                                 return RTouch_Read_XorY(CMD_RDX);  //CMD_RDX=0XD0  //用戶提供的讀X觸點(diǎn)坐標(biāo)
  37.                                                                                                         }

  38.                                                                                                         int  GUI_TOUCH_X_MeasureY(void) {  // 獲取Y點(diǎn)坐標(biāo) (GUI提供的接口函數(shù))
  39.                                                                                                                 return RTouch_Read_XorY(CMD_RDY);  //CMD_RDY=0X90  //用戶提供的讀y觸點(diǎn)坐標(biāo)
  40.                                                                                                         }
  41.                                                                         
  42.               LCDDriver  液晶屏驅(qū)動層  (屏幕初始化函數(shù)在LCDConf.h里添加)
  43.                                                              內(nèi)含3個文件,屬于3選1,選擇其中一個用來作為液晶屏對接的接口層
  44.                                                                             這里選擇的是LCDDummy.c,其他兩個無用。
  45.                                                                          LCDDummy.c中只需要把屏幕的畫點(diǎn)函數(shù)和讀點(diǎn)函數(shù)聲明進(jìn)來并放進(jìn)指定的函數(shù)內(nèi)即可。
  46.                                                                             其他的屏幕操作函數(shù)如畫線畫矩形畫圈等函數(shù)GUI默認(rèn)已帶,即是用調(diào)用的畫點(diǎn)函數(shù)完成。
  47.                                                                                         缺點(diǎn)就是效率低,你也可以自己再把效率高的畫線,矩,圈等的函數(shù)聲明進(jìn)來并在對應(yīng)的函數(shù)內(nèi)調(diào)用也行。
  48.                                                                                         總之一句話,畫點(diǎn)和讀點(diǎn)是必要的兩個移植函數(shù),其他可要可不要,非必須。
  49.                                                                                         畫點(diǎn)函數(shù)必須有以下功能:能指定某種顏色來畫一個點(diǎn),即擁有至少3個參數(shù):顏色,x坐標(biāo),y坐標(biāo)。
  50.                       參考:
  51.                                                                                             void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex) //畫點(diǎn)函數(shù)(GUI提供的接口函數(shù))
  52.                                                                                                         {
  53.                                                                                                                 LCD_Color_DrawPoint(x,y,PixelIndex); //用戶提供的畫點(diǎn)函數(shù)
  54.                                                                                                         }
  55.                                                                                                         
  56.                                                                                                         unsigned int LCD_L0_GetPixelIndex(int x, int y) //讀點(diǎn)函數(shù)(GUI提供的接口函數(shù))
  57.                                                                                                         {
  58.                                                                                                                 return LCD_GetPoint(x,y); //用戶提供的讀點(diǎn)函數(shù)
  59.                                                                                                         }
  60.                                                                 填充完以上4個函數(shù),觸屏和顯示屏的移植就完成了。
  61.                 接下來配置GUI的參數(shù)(即告訴GUI你的屏幕大小,觸屏的識別范圍,分配多少內(nèi)存給它使用,需不需要其他功能等等)                                                               
  62.                                                                                                         
  63.                                                 GUI配置:
  64.                 Config文件夾
  65.                                                                        GUIConf.h - 對GUI性能配置:
  66.                                                                                                             是否持OS多任務(wù)刷屏。不建議,只用一個任務(wù)刷屏即可。
  67.                                                                                                                                                                         是否支持觸屏。
  68.                                                                                                                                                                         文字編碼方式。
  69.                                                                                                                                                                         默認(rèn)字體。
  70.                                                                                                                                                                         分配給GUI自由動態(tài)配置使用的內(nèi)存大小。
  71.                                                                                                                                                                         
  72.                                                                                                                                                                         是否支持窗口管理。WM_ 即window manage ,必須要。
  73.                                                                                                                                                                         GUI動態(tài)內(nèi)存管理。
  74.                                           抗鋸齒。一般不用。
  75.                                                                                                                                                                               
  76.                                                                                                 GUITouchConf.h -觸屏配置:
  77.                                           設(shè)置觸屏邊界觸摸AD值, 本工程的觸摸ADC精度為12bit,范圍:0-4095 ,無觸屏?xí)r返回65535
  78.                                           X,Y觸屏方向設(shè)置。(X,Y對調(diào)/鏡像等)。
  79.                                           
  80.                         LCDConf.h    顯示屏配置:
  81.                                                                                                                   屏幕分辨率。
  82.                                                                                                                                                                         像素位數(shù)。
  83.                                                                                                                                                                         顯示屏驅(qū)動IC型號。
  84.                                                                                                                                                                         調(diào)色板格式。
  85.                                                                                                                                                                         紅藍(lán)反色交換。
  86.                                                                                                                                                                         屏幕初始化函數(shù),用戶提供。此處非函數(shù)填充形式,而是宏定替換形式。
  87.                                                                                                                                                                         
  88.                                                         做好以上就可以正常使用GUI了。                        

  89. FSC_STOS操作系統(tǒng):
  90.               FSC_STOS文件夾:  
  91.                                                                   APP.c - 任務(wù)函數(shù) (用戶在此寫代碼)
  92.                                                                   FSC_STOS.h - 操作系統(tǒng)配置。
  93.               

  94. 硬件接口:

  95.      PA1 -- 用作ADC功能,讀取電池電壓,轉(zhuǎn)為電池電量 (啟明的開發(fā)板接了LED0,需要把LED拆下。)
  96.      PA14 - 用作外部供電檢測,斷電時作出相應(yīng)動作。
  97.      PA15 - DS18B20傳感器
  98.                  
  99.                  AT24C02 - 模擬IIC :PA11(SLC)  PA12(SDA)
  100.                  W25Q16  - 硬件SPI1: PA4-7 -> CS CLK MISO MOSI
  101.                  
  102.                  bluetooth:UART5: PC12 (TX)  PD2 (RX)
  103. */
復(fù)制代碼

回復(fù)

使用道具 舉報

ID:168038 發(fā)表于 2019-8-9 08:20 | 顯示全部樓層
樓主厲害
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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