ZLG鍵盤數(shù)碼管鍵盤_第1頁
ZLG鍵盤數(shù)碼管鍵盤_第2頁
ZLG鍵盤數(shù)碼管鍵盤_第3頁
ZLG鍵盤數(shù)碼管鍵盤_第4頁
ZLG鍵盤數(shù)碼管鍵盤_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、ZLG鍵盤輸入實驗修改記錄版本號.作者描述修改日期0.1徐珊First Draft2011-9-14審核記錄姓名職務(wù)簽字日期ZLG 數(shù)碼管1.1 實驗介紹通過本次實驗熟悉ZLG7290芯片設(shè)計和驅(qū)動流程,熟悉I2C在實際設(shè)計中的應(yīng)用,ZLG7290是一款非常實用的鍵盤數(shù)碼管驅(qū)動芯片,只占用MCU的三個管腳,一個I2C的資源和一個中斷口,也可以用查詢方式來檢測,這樣比較浪費CPU的資源,所以還是用中斷的方式,這與原來的相比,還是節(jié)約了不少管腳資源,這個實驗是STM32驅(qū)動ZLG7290,通過寄存器直接查詢的方式,讓ZLG7290驅(qū)動數(shù)碼管并顯示數(shù)據(jù)并接受鍵盤輸入值顯示鍵盤的原值。1.2 實驗?zāi)繕?biāo)

2、 1. 理解固件庫的結(jié)構(gòu)2. 分析和學(xué)習(xí)固件庫3. 靈活運用 ZLG7290 1.3 實驗時間60分鐘1.4 預(yù)備知識熟悉C語言知識,熟練MDK的使用1.5 實驗步驟1.解壓stm32f10x_stdperiph_lib.zip 可以從ST官方網(wǎng)站免費下載(在實驗包里已經(jīng)下載好)。本教程使用的標(biāo)準(zhǔn)庫版本為 3.1.2.2.創(chuàng)建一個ZLG_Key文件夾2.1 新建子文件夾User,用于存放用戶源程序2.2 新建子文件夾Project,用戶KEIL工程文件2.3 在Project下依次創(chuàng)建Obj和List子文件夾,存放編譯過程中產(chǎn)生的中間文件。3. 復(fù)制源代碼到ZLG_Key文件夾3.1 將stm

3、32f10x_stdperiph_libSTM32F10x_StdPeriph_Lib_V3.1.2Libraries文件夾和Utilities文件夾整體復(fù)制到ZLG_Key文件夾下。這就是ST的標(biāo)準(zhǔn)庫,是以源代碼形式提供的。3.2 將庫中的演示代碼KeyDisplayUser中的文件i2c_zlg7290.h和stm32f10x_conf.h和i2c_zlg7290.c復(fù)制到ZLG_KeyUser文件夾.4. 新建Keil MDK工程4.1 啟動Keil MDK,點擊菜單 New uVision Project,新建一個工程,命名為ZLG_Key在Project文件夾下4.2 選擇CPU類型

4、為 STM32F107VC (這是MDV-STM32-107開發(fā)板采用的CPU類型)4.3 當(dāng)提示是否復(fù)制啟動代碼時,請選擇否。(我們用最新的庫中的啟動代碼,不用Keil軟件自帶的舊版本啟動文件)4.4 根據(jù)自己的需要修改Target名字。(名字任意)我們修改成ZLG_Key。4.5 為了便于代碼管理,在這個Project下創(chuàng)建幾個Group 如下圖:User : 存放用戶自己寫的源代碼RVMDK : 存放啟動文件(匯編文件)StdPeriph_Driver : 存放ST標(biāo)準(zhǔn)庫外設(shè)驅(qū)動文件CMSIS : 存放CMSIS接口文件(這也是庫的一部分)STM32_EVAL存放板集設(shè)備驅(qū)動文件4.6

5、創(chuàng)建好Group后,我們開始依次添加文件。4.6.1給User文件夾添加文件將ZLG_KeyUser文件加下的i2c_zlg7290.c添加到工程。4.6.2給RVMDK文件夾添加文件啟動文件路徑:ZLG_KeyLibrariesCMSISCoreCM3startuparm4.6.3給stdPeriph_Driver文件夾添加文件設(shè)備驅(qū)動文件路徑:ZLG_KeyLibrariesSTM32F10x_StdPeriph_Driversrc4.6.4給CMSIS文件夾添加文件CMSIS接口文件路徑: ZLG_Key LibrariesCMSISCoreCM34.6.4給STM32_EVAL文件夾添

6、加文件STM32_EVAL接口文件路徑: ZLG_Key GPIOUtilitiesSTM32_EVAL和 ZLG_Key GPIOUtilitiesSTM32_EVALSTM3210C_EVAL下面開始新建main.c主函數(shù)文件,點擊file菜單的中的new file如下圖所示,然后將新建的文件以main.c問文件名保存到User文件加下,然后再添加到工程User分組中。添加好文件的工程如下圖所示:5. 修改源代碼。我們將修改main.c 文件,換成下面的程序。/* * * file I2C/ZLG7290/main.c * author Sunxue * version V1.1.0 *

7、date 12/02/2012 * brief Main program body * * copy * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT

8、OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * * © COPYRIGHT 2009 STMicroelectronics */ /* Includes -*/#include i2c_zlg7290.h#inclu

9、de stm32f10x.h#include stm3210c_eval_lcd.h#include stm32_eval.h#include /* addtogroup STM32F10x_StdPeriph_Examples * */* addtogroup I2C_ZLG7290 * */ /* Private variables -*/* Reset Value */uint8_t Tx0_Instr = 0xf0,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x03,0x00,0x00;/* 0-9 nega

10、tive common */uint8_t Tx0_Ram0_7 = 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6;/*Read Num from Zlg*/uint8_t Rx0_Num = 0x00,0x00,0x00;/* Private functions -*/void RCC_Configuration(void);/* * brief Main program * param None * retval None */int main(void) /* System clocks configuration -*/ RCC_C

11、onfiguration(); /* Initialize the LCD */ STM3210C_LCD_Init(); /* Clear the LCD */ LCD_Clear(White); /* Set the LCD Text Color */ LCD_SetTextColor(Blue); printf( Key Test n); printf( IIC ZLG7290 Test n); /* Initialize the I2C ZLG7290 driver -*/ I2C_ZLG_Init(); /I2C_ZLG_BufferWrite(Tx0_Instr, 0x00, 0x

12、04); /I2C_ZLG_BufferWrite(&Tx0_Instr7, 0x07, 0x02); /* Set FlashOnOff and ScanNum */ I2C_ZLG_BufferWrite(&Tx0_Instr12, 0x0c, 0x02); /* Set DpRam0 to DpRam3 */ I2C_ZLG_BufferWrite(Tx0_Ram0_7, 0x10, 0x04); /* Display Key Value */ printf( Passby On ! n); printf( Key Value is : 00 n); while (1) /* Test

13、INT */if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15)/* Read Key Value From SystemReg Key RepetCnt */I2C_ZLG_BufferRead(Rx0_Num, 0x00, 0x03);/* Write To DpRam2 */I2C_ZLG_ByteWrite(&Tx0_Ram0_7Rx0_Num1/10, 0x12);/* Write To DpRam3 */I2C_ZLG_ByteWrite(&Tx0_Ram0_7Rx0_Num1%10, 0x13);/* Display Key Value */

14、printf( Key Value is : %d%d n,Rx0_Num1/10,Rx0_Num1%10); /* * brief Configures the different system clocks. * param None * retval None */void RCC_Configuration(void) /* Setup the microcontroller system. Initialize the Embedded Flash Interface, initialize the PLL and update the SystemFrequency variabl

15、e. */ SystemInit();#ifdef USE_FULL_ASSERT/* * brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * param file: pointer to the source file name * param line: assert_param error line source number * retval None */void assert_failed(uint8_t

16、* file, uint32_t line) /* User can add his own implementation to report the file name and line number, ex: printf(Wrong parameters value: file %s on line %drn, file, line) */ /* Infinite loop */ while (1) #endif/* * */ /* * */ /* (C) COPYRIGHT 2012 STMicroelectronics *END OF FILE*/6. 配置工程, 點擊“Options”按鈕6.1 切換到Output。選擇Obj文件夾。6.2 切換帶Listing。選擇List文件夾6.3 切換到Target在Code Generation的Use MicroLIB 前打鉤,如下圖所示。6.4 切換到C/C+ 添加兩個預(yù)編譯宏USE_STDPERIPH_DRIVER, STM32F10X_CL, USE_STM3210C_EVAL,LCD_Debug (這是ST庫用到了這兩個宏) 修改Includes路徑6.5 切換到Debug 選擇硬件調(diào)試器(缺省是軟件仿真),我們選擇Cortex-M/R J-LINK/J-Trace調(diào)試器 在 Run to ma

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論