|
好東東啊,樓主的主程序:- #include "fsc_stos.h" //使用多任務(wù)內(nèi)核
- int main(void)
- {
- OS_MAIN(); //請(qǐng)到APP.c寫代碼。
- }
- /*本工程介紹:
- 2.8寸ISP彩屏
- FSC_STOS+uCGUI
- 主界面:24h溫度折線圖
- 綠線:今天溫度
- 黃線:昨天溫度
- 紅線:前天溫度
- 觸屏:長(zhǎng)按2s以上進(jìn)入主設(shè)置界面
- 滑動(dòng):(按下屏幕,稍停0.5s左右再滑動(dòng),成功率較大)
- 向左-查看上一天溫度折線圖,最大可查看7天前 此方式靈敏度一般
- 向右-查看后一天溫度折線圖,左右循環(huán)查看 此方式靈敏度一般
- 向上-關(guān)閉前兩天的折線同屏顯示(方便對(duì)比) 此方式不太靈敏
- 向下-打開前兩天的折線同屏顯示 此方式不太靈敏
- 快捷指令:串口助手發(fā)送:
- time=1919.5.4.13.15.10// //年月日時(shí)分鈔,以//結(jié)束 設(shè)置RTC時(shí)間
- hstytemp// //查看7天內(nèi)的溫度情況(內(nèi)存夠大的話可以無限保存任意天數(shù)的溫度信息)
- 工程文件結(jié)構(gòu):
- Application文件夾存放GUI界面,WM_開頭的C文件對(duì)應(yīng)一個(gè)界面
- Driver文件夾:驅(qū)動(dòng)
- HardwareDriver文件夾:板載的特殊硬件驅(qū)動(dòng)
-
- GUI包含的文件夾:從AntiAlias到WM
- 其中:
- 有關(guān)移植部分:
- GUI_X(帶X表示外部,可修改)移植修改對(duì)象
- GUI_X.c為時(shí)鐘配置,即將硬件平臺(tái)的定時(shí)器脈沖注入GUI成為GUI的運(yùn)行動(dòng)力
- (裸機(jī)工程時(shí),一般作一個(gè)全局變量放在外部定時(shí)器的中斷里累加即可,定時(shí)1ms)
- GUI_X_Touch.c為觸屏移植,把觸屏的兩個(gè)xy坐標(biāo)獲取函數(shù)聲進(jìn)來調(diào)用即可。
- 參考:
- int GUI_TOUCH_X_MeasureX(void) { //獲取X點(diǎn)坐標(biāo) (GUI提供的接口函數(shù))
- return RTouch_Read_XorY(CMD_RDX); //CMD_RDX=0XD0 //用戶提供的讀X觸點(diǎn)坐標(biāo)
- }
- int GUI_TOUCH_X_MeasureY(void) { // 獲取Y點(diǎn)坐標(biāo) (GUI提供的接口函數(shù))
- return RTouch_Read_XorY(CMD_RDY); //CMD_RDY=0X90 //用戶提供的讀y觸點(diǎn)坐標(biāo)
- }
-
- LCDDriver 液晶屏驅(qū)動(dòng)層 (屏幕初始化函數(shù)在LCDConf.h里添加)
- 內(nèi)含3個(gè)文件,屬于3選1,選擇其中一個(gè)用來作為液晶屏對(duì)接的接口層
- 這里選擇的是LCDDummy.c,其他兩個(gè)無用。
- LCDDummy.c中只需要把屏幕的畫點(diǎn)函數(shù)和讀點(diǎn)函數(shù)聲明進(jìn)來并放進(jìn)指定的函數(shù)內(nèi)即可。
- 其他的屏幕操作函數(shù)如畫線畫矩形畫圈等函數(shù)GUI默認(rèn)已帶,即是用調(diào)用的畫點(diǎn)函數(shù)完成。
- 缺點(diǎn)就是效率低,你也可以自己再把效率高的畫線,矩,圈等的函數(shù)聲明進(jìn)來并在對(duì)應(yīng)的函數(shù)內(nèi)調(diào)用也行。
- 總之一句話,畫點(diǎn)和讀點(diǎn)是必要的兩個(gè)移植函數(shù),其他可要可不要,非必須。
- 畫點(diǎn)函數(shù)必須有以下功能:能指定某種顏色來畫一個(gè)點(diǎn),即擁有至少3個(gè)參數(shù):顏色,x坐標(biāo),y坐標(biāo)。
- 參考:
- void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex) //畫點(diǎn)函數(shù)(GUI提供的接口函數(shù))
- {
- LCD_Color_DrawPoint(x,y,PixelIndex); //用戶提供的畫點(diǎn)函數(shù)
- }
-
- unsigned int LCD_L0_GetPixelIndex(int x, int y) //讀點(diǎn)函數(shù)(GUI提供的接口函數(shù))
- {
- return LCD_GetPoint(x,y); //用戶提供的讀點(diǎn)函數(shù)
- }
- 填充完以上4個(gè)函數(shù),觸屏和顯示屏的移植就完成了。
- 接下來配置GUI的參數(shù)(即告訴GUI你的屏幕大小,觸屏的識(shí)別范圍,分配多少內(nèi)存給它使用,需不需要其他功能等等)
-
- GUI配置:
- Config文件夾
- GUIConf.h - 對(duì)GUI性能配置:
- 是否持OS多任務(wù)刷屏。不建議,只用一個(gè)任務(wù)刷屏即可。
- 是否支持觸屏。
- 文字編碼方式。
- 默認(rèn)字體。
- 分配給GUI自由動(dòng)態(tài)配置使用的內(nèi)存大小。
-
- 是否支持窗口管理。WM_ 即window manage ,必須要。
- GUI動(dòng)態(tài)內(nèi)存管理。
- 抗鋸齒。一般不用。
-
- GUITouchConf.h -觸屏配置:
- 設(shè)置觸屏邊界觸摸AD值, 本工程的觸摸ADC精度為12bit,范圍:0-4095 ,無觸屏?xí)r返回65535
- X,Y觸屏方向設(shè)置。(X,Y對(duì)調(diào)/鏡像等)。
-
- LCDConf.h 顯示屏配置:
- 屏幕分辨率。
- 像素位數(shù)。
- 顯示屏驅(qū)動(dòng)IC型號(hào)。
- 調(diào)色板格式。
- 紅藍(lán)反色交換。
- 屏幕初始化函數(shù),用戶提供。此處非函數(shù)填充形式,而是宏定替換形式。
-
- 做好以上就可以正常使用GUI了。
- FSC_STOS操作系統(tǒng):
- FSC_STOS文件夾:
- APP.c - 任務(wù)函數(shù) (用戶在此寫代碼)
- FSC_STOS.h - 操作系統(tǒng)配置。
-
- 硬件接口:
- PA1 -- 用作ADC功能,讀取電池電壓,轉(zhuǎn)為電池電量 (啟明的開發(fā)板接了LED0,需要把LED拆下。)
- PA14 - 用作外部供電檢測(cè),斷電時(shí)作出相應(yīng)動(dòng)作。
- PA15 - DS18B20傳感器
-
- AT24C02 - 模擬IIC :PA11(SLC) PA12(SDA)
- W25Q16 - 硬件SPI1: PA4-7 -> CS CLK MISO MOSI
-
- bluetooth:UART5: PC12 (TX) PD2 (RX)
- */
復(fù)制代碼
|
|