freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于stm32的可穿戴設備系統(tǒng)-畢業(yè)設計說明書-資料下載頁

2024-11-24 03:24本頁面

【導讀】眼鏡、服裝、鞋和手套。廣義的可穿戴設備是指功能全、尺寸大,不依賴于智能。監(jiān)測的智能手環(huán)、智能首飾等。隨著技術的進步以及用戶需求的變遷,可穿戴式。智能設備的形態(tài)也在不斷的變化。穿戴式技術在國際計算機學術界和工業(yè)界一直。本系統(tǒng)以意法半導體公司的基于Cortex-M332位高性能單片機。塊、TFT彩屏、SD卡等組成了一個可穿戴設備系統(tǒng)。該系統(tǒng)實現(xiàn)了萬年歷、秒表、計步、鬧鐘、畫板、日歷、地圖等功能。地圖獲取的圖片存放在SD卡中,GUI. 圖片存放在8M的外置FLASH當中。系統(tǒng)支持全觸摸操作。

  

【正文】 的層結構圖 最頂層是應用層,使用者無需理會 FATFS 的內部結構和復雜的 FAT協(xié)議,只需要調用 FATFS 模塊提供給用戶的一系列應用接口函數(shù),如 f_open, f_read,f_write 和 f_close 等,就可以像在 PC上讀/寫文件那樣簡單。中間層 FATFS模塊,實現(xiàn)了 FAT 文件讀/寫協(xié)議。 FATFS 模塊提供的是 和 。除非有必要,使用者一般不用修改,使用時將頭文件直接包含進去即可。需要我們編寫移植代碼的是 FATFS 模塊提供的底層接口,它包括存儲媒介讀/寫接口( disk I/O)和供給文件創(chuàng)建修改時間的實時時鐘。 FATFS 的源碼,是從 這個網站下載到,目前最新版本為 。我選用 的是該版本,下載解壓后可以得到兩個文件夾: doc 和 src。doc 里面主要是對 FATFS 的介紹,而 src 里面才是我們需要的源碼。其中,與平臺無關的是: FATFS 模塊配置文件 FATFS 和應用模塊公用的包含文件 FATFS 模塊 FATFS 和 disk I/O 模塊公用的包含文件 24 數(shù)據類型定義 option 可選的外部功能(比 如支持中文等) 與平臺相關的代碼(需要用戶提供)是: FATFS 和 disk I/O 模塊接口層文件 FATFS 模塊在移植的時候,我們一般只需要修改 2 個文件,即 和 。模塊的所有配置項都是存放在 里面,我們可以通過配置里面的一些選項,來滿足自己的需求。接下來介紹幾個重要的配置選項。 ( 1) . 數(shù)據類型:在 里面去定義好數(shù)據的類型。這里需要了解 所用的編譯器的數(shù)據類型,并根據編譯器定義好數(shù)據類型。 ( 2) . 配置:通過 配置 FATFS 的相關功能,以滿足 系統(tǒng)的 需要。函數(shù)編寫:打開 ,進行底層驅動編寫,一般需要編寫 6 個接口函數(shù)如圖 : d i s k i o . cd i s c k _ s t a t u sd i s c k _ w r i t ed i s c k _ i o c t lg e t _ f a t t i m ed i s c k _ i n i t i a l i z ed i s c k _ r e a d 圖 FatFs 接口函數(shù) 如通過以上步驟就可以完成 對 FatFs 文件系統(tǒng)的移植。 GUI 程序的設計 圖形用戶 界面 ( Graphical User Interface,簡稱 GUI,又稱圖形 用戶接口 )是指采用圖形方式顯示的計算機操作用戶界面 。 與早期計算機使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于接受。 本系統(tǒng)移植了 周立功公司開發(fā)的 GUI, 用來設計系統(tǒng)的操作界面, TFT 彩屏大量使用了 GUI 內的相關函數(shù)。 為適應系統(tǒng)需要,做了一定的裁剪。 底層 驅動 25 程序 函數(shù) 定義 在 GUI 文件夾中的 “ ” 和“ ” 中,具體 如下: void LCD_Init(void)。 //初始化 void LCD_DisplayOn(void)。 //開顯示 void LCD_DisplayOff(void)。 //關顯示 void LCD_Clear(u16 Color)。 //清屏 void LCD_DrawPoint(u16 x,u16 y,u16 c)。 void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)。 //填充單色 void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)。 u16 LCD_ReadReg(u8 LCD_Reg)。 void LCD_WriteRAM_Prepare(void)。 void LCD_WriteRAM(u16 RGB_Code)。 void LCD_Scan_Dir(u8 dir)。 //設置屏掃描方向 void LCD_Display_Dir(u8 dir)。 //設置屏幕顯示方向 extern void GUI_RectangleFill(uint32 x0, uint32 y0, uint32 x1, uint32 y1, TCOLOR color)。//畫填充矩形 extern void GUI_Rectangle(uint32 x0, uint32 y0, uint32 x1, uint32 y1, TCOLOR color)。//畫矩形 extern void GUI_CircleFill(uint32 x0, uint32 y0, uint32 r, TCOLOR color)。//畫填充圓 extern void GUI_Line(uint32 x0, uint32 y0, uint32 x1, uint32 y1, TCOLOR color)。//畫線 在對液晶操作前應調用“ LCD_Init”對液晶初始化,然后再進行其他操作。 系統(tǒng)開機之后 首先進行硬件的初始化 ,以及觸摸屏的校準。隨后系統(tǒng)跳轉到桌面狀態(tài) 進入主界面,首先加載表盤顯示時間,然后系統(tǒng)一直檢測桌面圖標的按下狀態(tài) ,當用戶按下按鍵以后,系統(tǒng)會停留 在 while(!TPEN())。語句用于松手檢測 ,以防止系統(tǒng)在用戶按下按鍵時發(fā)生多次跳轉。當用戶松開手后 則跳轉到相應的功能界面沒有按鍵按下則停留在桌面狀態(tài)每過一秒則把時間刷新一次。 本系統(tǒng)最關鍵的狀態(tài)轉換代碼如下: while(1) { 26 Switch (State_Machine) { case 0: State_Machine = State0_Calendar()。break。//萬年歷 case 1: State_Machine = State1_Clock()。break。//鬧鐘 case 2: State_Machine = State2_Stopwatch()。break。//計時器 case 3: State_Machine = State3_Map()。break。//地圖 case 4: State_Machine = State4_Drawing_Board()。break。//畫板 case 5: State_Machine = State5_Pedometer()。break。//計步 case 6: State_Machine = State6_zhuomian()。//桌面 } } 萬年歷 系統(tǒng)內設 的萬年歷可以提供陽歷顯示、農歷顯示、二十四節(jié)氣、生肖、以及實時的時分秒時間,并且可以提供時間的更改 。 日歷支持的范圍是 1901 年 2099年,主要依靠算法完成 ,支持農歷 。 下面將介紹萬年歷 的實現(xiàn)方法: 在主界面的狀態(tài)下點擊萬年歷圖標,此時系統(tǒng)會檢測到觸摸屏有按鍵按下,在按鍵松開后系統(tǒng)會自動跳轉到萬年歷界面, 首先加載 UI 界面,然后系統(tǒng)會進入一個循環(huán),在此循環(huán)中不斷檢測秒鐘標志位是否被置為 ’1’,當檢測到秒鐘標志位被置為‘ 1’時, 此時系統(tǒng) 會調用 RTC_Gettime 函數(shù) 從 RTC 寄存器 中獲得 UNIX時間戳,通過 計算后把時間戳的信息轉化為年月日時分秒存到 systmtime 時間結構體中。接著,系統(tǒng)繼續(xù)調用 Time_Display_yang、 Time_Display_yin、RTC_display_lcd、 RTC_display_lcd2 等函數(shù) 計算得到當前的陽歷、陰歷、節(jié)氣、生肖、以及實時的時間并顯示到 LCD 上,系統(tǒng)在 while 循環(huán)中不斷檢測按鍵的狀態(tài),并且每過一秒就將時間刷新一次。 當用戶點擊設置按鈕時系統(tǒng)跳轉到設置界面, 時間的輸入關鍵用到了一個字符數(shù)組 keystore[MAX_KEY_NUM],用戶每輸入一個數(shù)字,系統(tǒng)就會把數(shù)字對應的字符存入 這個數(shù)組中并且實時的顯示出來。 用戶輸入時間后點擊確定,系統(tǒng)自動判定時間 是否完整以及 合法性,當時間合法時 系統(tǒng)調用 Time_Adjust 函數(shù) 將時間轉化為 UNIX 時間戳存入 RTC 寄存器,當時間非法時點擊確定按鈕系統(tǒng)不會有反應。當用戶點擊返回按鈕時,系統(tǒng)跳轉到 界面狀態(tài)。 27 主要用到的函數(shù)如下: void Time_Adjust(struct rtc_time *tm)。//時間調整 void RTC_CheckAndConfig(void)。//RTC 檢測與配 置 void RTC_Settime(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)。//RTC時間設置 void RTC_NVICConfig(void)。 //RTC 中斷配置 void RTC_Gettime(struct rtc_time *tm)。 //RTC 時間戳獲得 u8 GetChinaCalendar(u16 year,u8 month,u8 day,u8 *p)。 //公農歷轉換 void GetSkyEarth(u16 year,u8 *p)。 //由公歷日期得到甲子年 void GetChinaCalendarStr(u16 year,u8 month,u8 day,u8 *str)。//輸入公歷日期得到農歷字符串 u8 GetJieQi(u16 year,u8 month,u8 day,u8 *JQdate)。 //獲得節(jié)氣信息 u8 GetJieQiStr(u16 year,u8 month,u8 day,u8 *str)。//獲得節(jié)氣字符串 u8 Get_phonekeyvalue(u32 x,u32 y)。 //獲 得按鍵值 u8 calender_config_mode(void)。 //日歷配置模式 void Show_keynum(u32 count,u32 lenth,unsigned char ch[])。 //按鍵值的顯示 u8 State0_Calendar(void)。 //萬年歷狀態(tài)函數(shù) RTC_display_lcd(80,10,BLUE ,WHITE ,16,1)。 //顯示年月日 RTC_display_lcd2(88,32,BLUE ,WHITE ,16,1)。// 顯 示時分秒 詳細代碼參見附錄二。 秒表 本系統(tǒng)設計的秒表可以提供 最多八個時間記錄,最小計時時間為秒 ,且支持后臺運行, 系統(tǒng)采用 STM32 的 TIM2 定時器來做。 STM32 總共有八個定時器,其中 TIM1 與 TIM8 為高級定時器, TIM1 與 TIM7 為基本定時器,其他為通用定時器。通用定時器的 主要 功能包括: ( 1) .16 位向上、向下、向上 /向下自動裝載計數(shù)器 。 ( 2) .16 位可編程 (可以實時修改 )預分頻器,計數(shù)器時鐘頻率的分頻系數(shù)為1~ 65536 之間的任意數(shù)值。 ( 3) .四個獨立通道:輸入捕獲、輸出比較、 PWM 生成、單脈沖模式輸出。 ( 4) .使用外部信號控制定時器和定時器互連的同步電路。 28 ( 5) .如下事件發(fā)生時產生中斷 /DMA:計數(shù)器向上溢出 /向下溢出,計數(shù)器初始化 (通過軟件或者內部 /外部觸發(fā) ); 觸發(fā)事件 (計數(shù)器啟動、停止、初始化或者由內部 /外部觸發(fā)計數(shù) ); 輸入捕獲 ; 輸出比較 下面將介紹萬年歷的實現(xiàn)方法: 在主界面的狀態(tài)下點擊秒表圖標, 系統(tǒng)檢測到觸摸屏有按鍵按下,在按鍵松開后自動 跳轉到秒表界面,此時系統(tǒng)會首先加載 UI 界面并且在 while 循環(huán)中不斷檢測按鍵的狀態(tài),當用戶點擊開始按鈕時,秒表開始自動計時,并且把開始按鈕變成暫停按鈕, 計時的源代碼主要如下: if(sec_flag==1) { sec_flag=0。 sec++。 if(sec59) { sec=0。 min++。 if(min59) { min=0。 hour++。 if(hour==24) hour=0。 } } } 在 while 循環(huán)中系統(tǒng)一邊記錄總時間,一邊計算相對時間??倳r間用來記錄從開始計時以來的總時間,相對時間用來記錄從按下計次按鈕到當前經過的時間。然后系統(tǒng)調用 Draw_Text 函數(shù),將兩個時 間打印在屏幕上。 我設置了一個變量 s_t_flag 用來標志當前的計時狀態(tài)。當 s_t_flag 為‘ 1’
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1