ZLG键盘数码管键盘Word下载.docx

上传人:b****6 文档编号:21173761 上传时间:2023-01-28 格式:DOCX 页数:24 大小:1.08MB
下载 相关 举报
ZLG键盘数码管键盘Word下载.docx_第1页
第1页 / 共24页
ZLG键盘数码管键盘Word下载.docx_第2页
第2页 / 共24页
ZLG键盘数码管键盘Word下载.docx_第3页
第3页 / 共24页
ZLG键盘数码管键盘Word下载.docx_第4页
第4页 / 共24页
ZLG键盘数码管键盘Word下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

ZLG键盘数码管键盘Word下载.docx

《ZLG键盘数码管键盘Word下载.docx》由会员分享,可在线阅读,更多相关《ZLG键盘数码管键盘Word下载.docx(24页珍藏版)》请在冰豆网上搜索。

ZLG键盘数码管键盘Word下载.docx

2.分析和学习固件库

3.灵活运用ZLG7290

1.3实验时间

60分钟

1.4预备知识

熟悉C语言知识,熟练MDK的使用

1.5实验步骤

1.解压stm32f10x_stdperiph_lib.zip可以从ST官方网站免费下载(在实验包里已经下载好)。

本教程使用的标准库版本为3.1.2.

2.创建一个ZLG_Key文件夹

2.1新建子文件夹User,用于存放用户源程序

2.2新建子文件夹Project,用户KEIL工程文件

2.3在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。

3.复制源代码到ZLG_Key文件夹

3.1将stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2\Libraries文件夹和Utilities文件夹整体复制到ZLG_Key文件夹下。

这就是ST的标准库,是以源代码形式提供的。

3.2将库中的演示代码KeyDisplay\User中的文件i2c_zlg7290.h和stm32f10x_conf.h和i2c_zlg7290.c复制到ZLG_Key\User文件夹.

4.新建KeilMDK工程

4.1启动KeilMDK,点击菜单NewuVisionProject,

新建一个工程,命名为ZLG_Key在Project文件夹下

4.2选择CPU类型为STM32F107VC(这是MDV-STM32-107开发板采用的CPU类型)

4.3当提示是否复制启动代码时,请选择否。

(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)

4.4根据自己的需要修改Target名字。

(名字任意)我们修改成ZLG_Key。

4.5为了便于代码管理,在这个Project下创建几个Group如下图:

User:

存放用户自己写的源代码

RVMDK:

存放启动文件(汇编文件)

StdPeriph_Driver:

存放ST标准库外设驱动文件

CMSIS:

存放CMSIS接口文件(这也是库的一部分)

STM32_EVAL存放板集设备驱动文件

4.6创建好Group后,我们开始依次添加文件。

4.6.1给User文件夹添加文件

将ZLG_Key\User文件加下的i2c_zlg7290.c添加到工程。

4.6.2给RVMDK文件夹添加文件

启动文件路径:

\ZLG_Key\Libraries\CMSIS\Core\CM3\startup\arm

4.6.3给stdPeriph_Driver文件夹添加文件

设备驱动文件路径:

\ZLG_Key\Libraries\STM32F10x_StdPeriph_Driver\src

4.6.4给CMSIS文件夹添加文件

CMSIS接口文件路径:

\ZLG_Key\Libraries\CMSIS\Core\CM3

4.6.4给STM32_EVAL文件夹添加文件

STM32_EVAL接口文件路径:

\ZLG_Key\GPIO\Utilities\STM32_EVAL和\ZLG_Key\GPIO\Utilities\STM32_EVAL\STM3210C_EVAL

下面开始新建main.c主函数文件,点击file菜单的中的newfile如下图所示,然后将新建的文件以main.c问文件名保存到User文件加下,然后再添加到工程User分组中。

添加好文件的工程如下图所示:

5.修改源代码。

我们将修改main.c文件,换成下面的程序。

/**

******************************************************************************

*@fileI2C/ZLG7290/main.c

*@authorSunxue

*@versionV1.1.0

*@date12/02/2012

*@briefMainprogrambody

*@copy

*

*THEPRESENTFIRMWAREWHICHISFORGUIDANCEONLYAIMSATPROVIDINGCUSTOMERS

*WITHCODINGINFORMATIONREGARDINGTHEIRPRODUCTSINORDERFORTHEMTOSAVE

*TIME.ASARESULT,STMICROELECTRONICSSHALLNOTBEHELDLIABLEFORANY

*DIRECT,INDIRECTORCONSEQUENTIALDAMAGESWITHRESPECTTOANYCLAIMSARISING

*FROMTHECONTENTOFSUCHFIRMWAREAND/ORTHEUSEMADEBYCUSTOMERSOFTHE

*CODINGINFORMATIONCONTAINEDHEREININCONNECTIONWITHTHEIRPRODUCTS.

*<

h2>

<

center>

&

copy;

COPYRIGHT2009STMicroelectronics<

/center>

/h2>

*/

/*Includes------------------------------------------------------------------*/

#include"

i2c_zlg7290.h"

stm32f10x.h"

stm3210c_eval_lcd.h"

stm32_eval.h"

#include<

stdio.h>

/**@addtogroupSTM32F10x_StdPeriph_Examples

*@{

*/

/**@addtogroupI2C_ZLG7290

/*Privatevariables---------------------------------------------------------*/

/*ResetValue*/

uint8_tTx0_Instr[]={0xf0,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x03,0x00,0x00};

/*0-9negativecommon*/

uint8_tTx0_Ram0_7[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};

/*ReadNumfromZlg*/

uint8_tRx0_Num[]={0x00,0x00,0x00};

/*Privatefunctions---------------------------------------------------------*/

voidRCC_Configuration(void);

*@briefMainprogram

*@paramNone

*@retvalNone

intmain(void)

{

/*Systemclocksconfiguration---------------------------------------------*/

RCC_Configuration();

/*InitializetheLCD*/

STM3210C_LCD_Init();

/*CleartheLCD*/

LCD_Clear(White);

/*SettheLCDTextColor*/

LCD_SetTextColor(Blue);

printf("

KeyTest\n"

);

IICZLG7290Test\n"

/*InitializetheI2CZLG7290driver----------------------------------------*/

I2C_ZLG_Init();

//I2C_ZLG_BufferWrite(Tx0_Instr,0x00,0x04);

//I2C_ZLG_BufferWrite(&

Tx0_Instr[7],0x07,0x02);

/*SetFlashOnOffandScanNum*/

I2C_ZLG_BufferWrite(&

Tx0_Instr[12],0x0c,0x02);

/*SetDpRam0toDpRam3*/

I2C_ZLG_BufferWrite(Tx0_Ram0_7,0x10,0x04);

/*DisplayKeyValue*/

PassbyOn!

\n"

KeyValueis:

00\n"

while

(1)

{/*TestINT*/

if(!

GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_15))

{/*ReadKeyValueFromSystemRegKeyRepetCnt*/

I2C_ZLG_BufferRead(Rx0_Num,0x00,0x03);

/*WriteToDpRam2*/

I2C_ZLG_ByteWrite(&

Tx0_Ram0_7[Rx0_Num[1]/10],0x12);

/*WriteToDpRam3*/

Tx0_Ram0_7[Rx0_Num[1]%10],0x13);

/*DisplayKeyValue*/

printf("

%d%d\n"

Rx0_Num[1]/10,Rx0_Num[1]%10);

}

}

}

*@briefConfiguresthedifferentsystemclocks.

voidRCC_Configuration(void)

/*Setupthemicrocontrollersystem.InitializetheEmbeddedFlashInterface,

initializethePLLandupdatetheSystemFrequencyvariable.*/

SystemInit();

#ifdefUSE_FULL_ASSERT

*@briefReportsthenameofthesourcefileandthesourcelinenumber

*wheretheassert_paramerrorhasoccurred.

*@paramfile:

pointertothesourcefilename

*@paramline:

assert_paramerrorlinesourcenumber

voidassert_failed(uint8_t*file,uint32_tline)

{

/*Usercanaddhisownimplementationtoreportthefilenameandlinenumber,

ex:

Wrongparametersvalue:

file%sonline%d\r\n"

file,line)*/

/*Infiniteloop*/

{

#endif

*@}

/*******************(C)COPYRIGHT2012STMicroelectronics*****ENDOFFILE****/

6.配置工程,点击“Options”按钮

6.1切换到Output。

选择Obj文件夹。

6.2切换带Listing。

选择List文件夹

6.3切换到Target在CodeGeneration的UseMicroLIB前打钩,如下图所示。

6.4切换到C/C++

Ø

添加两个预编译宏USE_STDPERIPH_DRIVER,STM32F10X_CL,USE_STM3210C_EVAL,LCD_Debug(这是ST库用到了这两个宏)

修改Includes路径

6.5切换到Debug

选择硬件调试器(缺省是软件仿真),我们选择Cortex-M/RJ-LINK/J-Trace调试器

在Runtomain前打钩

6.6切换到Utilities

选额调试器类型,我们选择Cortex-M/RJ-LINK/J-Trace

点settings按钮,添加Flash编程算法,我们选择STM32连接型器件,Flash容量256K字节

7.配置工程完毕。

下面开始编译。

8.编译OK,点击LOAD下载到STM32的Flash中按开发板Reset键开始运行或者断开电源重启一下便可看到如下图现象。

9.教程结束。

1.6结论

1.7问题

1、简述如何通过春指令操作达到此更能

2、简述怎么配置I2C寄存器

3、简述如何让LED数码数码动态显示数据

4、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1