下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
qq群进行交流:。通过本群也可获得的模块开发代码。 第一篇硬件 概述..............................................................................................................................-2K10介绍......................................................................................................-2K10Kinetis系列控制器比较........................................................................-2Kinetis系列命名规则.........................................................................................-2K10引脚图...........................................................................................................-4 引脚功能表...................................................................................................-4第二 板简介.........................................................................................................-10K10板原理图详解..............................................................................................-11板使用注意事项.................................................................................................-14第一章keiluVisionV4.22介绍...............................................................................................-21系统环境和软件版本..................................................................................................-21新建一个工程..............................................................................................................-21第二章程 器驱动安装.........................................................................................................-33设置.....................................................................................................................-33程 .....................................................................................................................-38 文件夹介绍....................................................................................................-423.1gpio文件介绍......................................................................................................-3.2delay文件介 -3.3wdog文件介 -3.4uart文件介绍.......................................................................................................--第四章.1TAB键的妙用..............................................................................................................-45函数/变量............................................................................................................-46返回定位函数.............................................................................................................-47快速注释与快速取消注释 第一章GPIO模块介绍............................................................................................................-47GPIO模块开发.............................................................................................................-47GPIO相关寄存器介 .-47GPIO相关寄存器配置......................................................................................-48PORTx端口相关寄存器介绍...........................................................................-48PORTx相关寄存器配置...................................................................................-49时钟寄存器(SIM)配置...............................................................................-49寄存器配置结果整理..................................................................................................-49程序设计.....................................................................................................................-50GPIO模块完整程序....................................................................................................-50LED小灯实验...............................................................................................................-52实验目标...........................................................................................................-53硬件设计...........................................................................................................-53程序设计...........................................................................................................-53DELAY模块介绍........................................................................................................-56程序设计.....................................................................................................................-56应用示例.....................................................................................................................-57UART模块介绍..........................................................................................................-58UART相关寄存器.......................................................................................................-58软件设计.....................................................................................................................-60应用示例.....................................................................................................................-63硬件说明...........................................................................................................-63示例程序..........................................................................................................-63程序验证..........................................................................................................-64WDOG模块介绍.........................................................................................................-65WDOG相关寄存器.....................................................................................................-65程序设计.....................................................................................................................-66应用示例.....................................................................................................................-67PIT模块介绍...............................................................................................................-68PIT相关寄存器...........................................................................................................-68程序设计.....................................................................................................................-69应用示例.....................................................................................................................-70第六章实验.................................................................................................-72FTM模块介绍.............................................................................................................-72FTM相关寄存器.........................................................................................................-72程序设计.....................................................................................................................-73应用示例.....................................................................................................................-75第七章LCD液晶屏介绍.........................................................................................................-77LCD液晶屏函数介绍..................................................................................................-77应用示例.....................................................................................................................-79外部中断介 .-81EXIT相关寄存器介绍................................................................................................-81程序设计.....................................................................................................................-82应用示例.....................................................................................................................-83ADC模块介绍.............................................................................................................-86ADC相关寄存器.........................................................................................................-86程序设计.....................................................................................................................-87应用示例.....................................................................................................................-89LPTM模块介绍.........................................................................................................-91LPTM相关寄存器.....................................................................................................-91程序设计...................................................................................................................-92应用示例...................................................................................................................-93第十一章uCOS嵌入式系统介绍..............................................................................................-95uCOS-Ⅱ嵌入式系统移植 uCOS-Ⅱ嵌入式系统使用 普通任务创建及使用.....................................................................................-97外部中断任务.................................................................................................-98第十二章模块介绍.................................................................................................................-100模块相关寄存器.....................................................................................................-100程序设计.................................................................................................................-101应用示例.................................................................................................................-102在本篇章中将详细介绍K10板和k10的一些知识。通过该篇章的学习,☞k10介第一章介KinetisK10————本章将介绍有关板所搭载的的一些知识,希望通过本章学习,对intis系列有个初步了解,为了描述方便,本文将此10。概K10介FreesScaleKinetisK10系列简称K10它是由飞思公司于2010年下半年推出,该系列微控制器基于ARMCortex-M4内核,是业内首款ARMCortex-M4内核。Kinetis系列微控制器采用了飞思90纳米薄膜器(TFS)闪存技术和Flex器功能(可配置的内嵌EEPROM支持超过1000万次的擦写,Kinetis系列微控制器系列融合了的低功耗革新技术,具有高MK10DN512ZVLL10是飞思公司生产的Kinetis系列微控制器的入门芯片。该包含512KB的flash器及128KB的运行内存,共100个引脚,采用LQFP封装,尺寸为14*14mm。具体请查询K10参考手册(K10Sub-FamilyReferenceManual)。系列属于高端,k10系列在Kinetis产品定位上属于,属于入门级,K60完全一样Kinetis值QQualification(产品类型KFamily(系列MMemory(器N=Non-FTTemperature(温度范围Package(封装标志续值S50=5072=72100=100120=120150=150180=180NTapeandBlank=non见图1-1K10引脚K10引脚功能K10的大部分引脚都有复用功能,每个引脚的功能可以通过合理的配IO)每个引脚1-1(注:此表以修图1-1 表1-1 引默复用功0复用复用复用复用复功能复用功6复功能1234567891/3续引默复用续引默复用功0复用复用复用复用复功能复用功6复功能2bT0D1D续引默复用复用复用复用复用续引默复用复用复用复用复用第二章板简本章学习让大家对板有个大概的了解,以方便日后的学习。K10板简2.1.1图2.1.2k10板说明K10板的外观尺寸较小并且四周留有丰富的引脚方便大家自己开发,其0LQFP100FLASH512KBSRAM128KB;2.22.2板原理图详公司生产的Kinetis10系中的2.2.1图2.2.1外接引脚2.在K10板上仅有一个按键,位于板的边缘位置,用于复位,当按下此键时系统将复位重新启动,其在板上的原理图如图2.2.2所示。3.接在K10板按键的旁边有个5*2的插排,此接口用于连接程序器,在程序时使用(程序完成后可以拔下来,因为有时会对一些引脚产生影响其在板上的原理图如图2.2.3所示。在K10板的边角处有一个小的白色接口,此接口是用于连接板所带的液晶屏,其在板上的原理图如图2.2.4所示。2.2.2此接口在板的边缘位置,搭载的是MiniUSB头,此接口有两个功能,一种是为板供电,另一种是提供USB转串口功能(需要跳线连线。其原理图如图2.2.5所示。2.2.5USB使用UART3口)2.2.6LEDK10LED灯,一颗为电源指示灯,另两颗为引脚状态指示灯(可以控制它的亮灭,位于板的两个边角上.7LEDSPI总线,六根线分别是电源(、电源(-、片选信号(CS、数据输入(SDI、时钟线(SCL、硬件复位(RSTRST线是提供液晶屏复位用的。2.3板使用注意事500mA,在给外部供电时请不要超过此电流。特别注意的是,当板不使USB供电时(比如安装在智能车上)USB经过前面的学习,大家对k10板的硬件平台有了较深入的了解,接下的篇章将介绍的开发软件keil的使用方法,通过本章的学习希望大家能够掌握k10的开发流☞☞keil第一keil软件入keiluVisionV4.22介keiluVisionKeilSoftware公司(ARM公司收购)uVision集成开发环境支持的Cortex-M4核处理器,自动配置启动代码,集成Flash烧写,debug模块等功能。对k10 操作系统:WindowsXPSP3Keil版本 keiluVision调试工具:Jlink SEGGER版本SRCPRJKEIL工程文件,SRC中存放源文件,这么做主要l1.3.1示例暂时把工程名字设为test,如下图1.3.3所示;图1.3.4所示:1.3.5图1.3.6所示:1.3.6启动代码是一段和硬件相关的汇编代码,必不可少,这代码具有作用如下:1堆栈的初始化;2、向量表定义;3、地址重映射及中断向量表的转移。感1.3.7至此,keil软件的启动代码已经加入,但还需要加入一些其他文件来对SOURCE文件夹,将看到三个文件夹,如图1.3.8所示,将这三个文件夹到您刚开始时建立的SOURCE文件夹下。1.3.8keil窗口可以实现工程文件的管理首先鼠标右击Target1文件夹将弹出一个窗,如图1.3.9所示。1.3.9Mange1.3.10Components在图1.3.10所示的框的中间栏单击新建按钮(用红色圆圈标出,也可以通所示框。按照这些操作将你需要的文件加入到工程中去。..161.3.17单击(编译按钮)编译一下,则OutWindows信息栏中发出警告:意思是无法打开**.h源文件,没有这个文件或者。双击这部分报错内容,则通过上面的提示已经很清楚地告诉开发人员错误的原因——include的路径Target图 加入头文件包含路单击IcludePaths下拉按在弹出的框中加入SYSTEM、HARDWAREh文件时经常用到此操作1.3.19所1.3.19译按钮,发现没有错误,可以得到图1.3.20所示界面。器驱动安程序的方式有多种:usb、串口、JTAG、SWD等,本板的程序可选用JTAG或SWD方式。JLINK器提供这两种方式,首先安装j-link硬件驱动,驱动请根据自己的器选择适当的驱动程序。其安装过程2.2设 在之前还需要对keil设置下,才能将程序成功的 .2 之前的设点击keil软件Project窗口下的Target1,右击鼠标选择选择OptionForTarget‘Target1’按钮,将弹出如图2.2.4所示对图2.2.4OptionForTarget‘Target1’图2.2.5设置关键点击上图红圈标注的下来菜单,选择Cortex-M/RJ-LINK/J-Trace,结果如图点击Settings按钮(如上图所示)则弹出如下所示框(图2.2.7:图2.2.7设置关键2.2.8图2.2.8设置关键2.2.9再点击“OK”按钮,进入下一框,再点击“OK”按钮,将返回keil页面,至 2.3程序请用j-link器将电脑与板的口连接好,点击 置如图2.3.1红圈所示:2.3.1keil电脑将自动程序到板,完成后将出现如下所示界面(图2.3.2:图2.3.2keil完成页 后按下板上的复位按钮,板将执行你的程序了在遇到问题时能够有所帮助。当时出现如图2.3.3所示的 框时请检查器与电脑连接情况,看 图 当时出现如图2.3.4所示的 图2.3.4问题图2.3.5调试框点击上图红圈的“Debug”按钮,然后进入图2.3.6进行设置,直到红色方框中显示发现设备(2.3.8所示,出现其中一种 框2.3.8前面章节介绍了如何在KEIL软件里建立一个k10的工程,在新建过程中,曾让大家把SYSTEM、HARDWARE、USER三个文件夹的代码加入到工程中,USER文件夹存放的是main函数,其它两个文件夹则存放的是k10系列各 SYSTEMGPIOgpio.h头文件一起uart.c文件是存放串口通信模块的底层驱动文件;system.c文件(sys.c文件)是,它包3.1.1SYSTEMgpioGPIO模块的底层文件,通过此文件可以实现对芯GPIOgpio.cgpio.hhk10的I/O口输入输出宏定义及一些功能函数。C文件里包含了许多与k10底层硬件相关的设置函数,用以实现对I/O的控制。gpio.c数(具体代码及设置请查看程序包和k10手册。GPIO_Init函数的函数体为GPIO_Init(GPIO_Type*port,intindex,intdir,intdata),其中port代表I/O端PTA,PTB,PTC,PTD,PTE;index引脚号,0~31;dir输入输出方向控制,0代表输入,1代表输出;data当设置为输出功能时,1代表输出高电平,0代表输出低电平、当设置为输入功能时,1代表上拉电阻,0代表下拉电阻。它的功能是对特定端口提供初始化服务,包括开启特定端口的时钟(在K10中,输入还是输出、如果是输出的话则输出是0还是1,如果是输入的话是上拉电阻还PORTC端口的41(即高电平GPIO_Ctrl函数的函GPIO_Ctrl(GPIO_Type*port,intindex,intdata),其中port代表I/O端PTA,PTB,PTC,PTD,PTE;index代表引脚号,填0~31的数;data01(ARM提51I/O口的控制,具体请GPIO_Ctrl函数的功能是控制特定端口输出值,在输出功能下使用,控制输01PORTC40(即低电平GPIO_Toggle函数的函数体为GPIO_Toggle(GPIO_Type*port,intindex)其实现对I/O口的控制,具体请参考实例程序。GPIO_Get函数的函数体为GPIO_Get(GPIO_Type*port,intindex)其中port代ARM51那样简便的实现对I/O口的控制,具体请参考实例程序。GPIO_Get(PTC,4);注:首先配置该端口引脚为输delay文件代码是用以驱动延时模块的底层文件,通过此文件可以实现准确k10延时模块的宏定义及一些功能函数。Ck10底层硬件相DELAY_InitDELAY_Init(uint8_tSYSCLK),此函数的功能是对延时模块进行配置;DELAY_UsDELAY_Us(uint32_tus),DELAY_MsDELAY_Ms(uint32_tms),此函数用以设置毫秒级延时服务。序运行状况,防止程序跑飞、死机等不正常现象出现。它包含WDOG_Init、WDOG_Close、WDOG_Open、WDOG_Feed四个函数,如果开启开门狗的话必uart文件代码是uart串口通信模块的底层文件,一般常用的通信波特率为9600或115200,在这里需要注意的是使用UART0、UART1时,时钟频率用的是内核频率,使用UART2、UART3、UART4时,时钟频率用的是bussystemsystem文件(也称sys文件)代码是,它包含了系统时钟的设置等一一个文件,具体请查看keil软件下里的system_MK10DZ10.C文件。第四keil使用技TAB4.1.1所示,大家看到这样的代码排列是不会接受的,TAB键来快速修改成比较规范的代码了。4.1.1如图4.1.2所示。4.1.2函数/这能非常实用,尤其在调试或者编写代码时,通过这能能够快速的4.2.1所4.2.1体信息(如图4.2.2所示。
图4.2.2函 形状如图4.3红框所示。4.3快速注释与快速取选中想要注释掉的代码,然后右击鼠标,弹出一菜单栏,选择CommentSelection.14.4.2 第三篇实践篇k10的开发软keil和硬件平台有了较深入的了解,接下步学习k10。k10包含了丰富的模块资源,集成本篇章的最后还简单的介绍了uCOS系统的移植,以加深读者对嵌入式系统的了解,如 话的请查看后面的uCOS移植程序。第一LED最简单的外设功能是I/O口的高低电平控制,在k10上这能在GPIOGPIOGPIO模块的开发过程及GPIOK10使用的是ARM-CM4的内核,飞思公司在内核周围增加了许多外设模块,以实现多种功能,例如ADC模块,实现模数转换的功能;PIT模多模块,这里将不再介绍,具体请参考k10参考手册。GPIO能及注意事项,在GPIO开发中很有用,最好都浏览一下。(GPIOx_PDOR寄存器(xA/B/C/D/E)PortDataOutputRegister,即:端口数据输出寄存器。(k101482页)此寄存器是控制端口各个引脚的输出值,可读可写,一共是32位,正好对应端口上的32个引脚即0~31。寄存器的每一位对应一个引脚,寄存器的对应的位为0即对应的端口引脚输出值为0,即低电平;寄存器的对应的位为1即对应的端口引脚输出值为1,即高电平。例如:配置GPIOA_PDOR=0x 六进制数代表PORTA端口的0引脚输出值为1(在输出模式下。GPIOx_PSORPortSetOutputRegister(k101482页此寄存器是设置端口各引脚的值,可写,一共32位,对应端口上的32个引0011,在GPIO基本功能中不用设置。GPIOx_PTORPortToggleOutputRegister即:端口输出翻转寄存器。(k10参考手册1483页)0时,对应的引脚输1时,对应的引脚输出值与以前的相反(01;原先为1,现在为0GPIO基本功能中不用设置但在GPIO输出控制时经常GPIOx_PDIR寄存器PortDataIntputRegister即:端口输入数据寄存(k10参考手册1484页)此寄存器是各个引脚的输入值,可读,一共是32位,正好对应端口上GPIOx_PDDRPortDataDirectionRegister即:端口数据方向控制寄存器。(k10参考手册1484页)此寄存器控制端口引脚是输还是输出口,可读可写,一共是32位,正好对应端口上的32个引脚即0~31。寄存器的每一位对应一个引脚,寄存器的对应位为01时配置对应的本次要实现GPIO端口引脚输出功能,通过以上介绍可以了解到与GPIO输出功能相关的寄存器有GPIOx_PDOR寄存器、GPIOx_PDDR寄存器,共两个,例如配置PTC端口的51PTC->PDOR|=1<<5;//在这里设置C5引脚输出值为PORTx寄存器,有的模块还需要开时钟才能进行配置,参考手册238页)PORTx_PCRn寄存31~25位:保留,没有意义 位:引脚中断状态标识位,0,表示没有中断发生;1表示有中断发23~20位:保留19~16位:中断配置,用以配置在什么情况下产生中断 位:锁寄存器控制,0表示此寄存器不被锁,1表示此寄存器被锁,14~11位:保留的引复用情况查看k10手册213页。 位:驱动增强使能位,当引脚配置为输出时,0表示低的驱动能力,1 位:电阻配置选择,0表示下拉电阻,1PORTC5GPIO时钟寄存器(SIM)配时钟,不然无法工作。具体的模块时钟请查看k10手册268页。 通过以上介绍可以知道要实现PORTC5引脚为输出功能需要配置一些寄SIM- PTC->PDOR|=1<<5;//在这里设置C5引脚输出值为#include"sys.h"#include"delay.h"#include"gpioh"#include"uart.h"intmain(void){ //CORE/SYSTEMCLOCK96MBUSCLOCKSIM- ;//PORTCPORTC->PCR[5]|=1<<8;//在这里设置C端口的5GPIO功能PTC->PDOR|=1<<5;//在这里设置C端口的5引脚输出值为PTC->PDDR|=1<<5;//在这里设置C端口的5引脚为输出功能(注:这里的寄//PTCkeil里事先定义好的该寄存器地}编完之后,点击编译按钮,当出现如图1.6.4所示时,可以到k10板上,验证程序编写是否正确。(GPIO模块时所走的路,仅GPIO
1.4.4voidGPIO_Init(GPIO_Type*port,intindex,intdir,int{PORT_Type*p;{casePTA_BASE:p=PORTA;SIM->SCGC5|=SIM_SCGC5_PORTA_MASK;break;开PORTA口使能时钟,在设置前首先开启使能时钟参见k10268页casePTB_BASE:p=PORTB;SIM- PORTB口使能时casePTC_BASE:p=PORTC;SIM- PORTC口使能时casePTD_BASE:p=PORTD;SIM- PORTD口使能时casePTE_BASE:p=PORTE;SIM- PORTE口使能时default:}p-p- //PORTMUXGPIO //设置为输出{页p- //作为输出口时关闭该引脚的上下拉port->PDOR&=~(1<<index);//端口输出值为}else//设置{port->PDDR&=~(1<<index);//配置PORTn口的第index引脚为输入,参见k10手册页if(data==1)//上拉电阻,参见k10240 //k10240页}}//函数名//功能:gpio//说明 io端 10 必须先将对IO口设置为voidGPIO_Ctrl(GPIO_Type*port,intindex,int{if(data==1)//设置引脚输出为1,参k101482{port-}{port-}}//函数名//功能:gpio//说明 io端 {port- //将引脚的电平进行翻转,参考k101483}//函数名//功能:获得gpio//说明 io端 10,1代表高电平,0{return((port->PDIR>>index)&1);//获得引脚的电平状态,在输入状态下使用,参 }LED小灯实本章节将向大家展示一个LED小灯的实验,以帮助大家对GPIO功能的理解和应用该两个小灯在板上的两个边角的位置,在板上默认已经连接好了、P6引脚。keil入门里介绍的方法新建一工程,将底层程序加入下面,保存为led.c。在该文件中输入如下代码:#include//LEDvoid{} LED_H#include"gpio.h"//引#define #define //位#defineLED0 PCout(LED0_PIN)//PC4#defineLED1 PEout(LED1_PIN)//PC4voidLED_Init(void);回到主界面,在main函数里编写如下代码:#include"sys.h"#include"delay.h"#include"gpio.h"#include"uart.h"#include"ledh" int{ //CORE/SYSTEMCLOCK96MBUSCLOCK //初始化与LED连接的硬件接{ }}1.6看到没有错误和警告(警告也可以,但尽量没有,将程序到板上验证面将介绍一下用普通操作的代码,在main文件下编写如下代码:#include"sys.h"#include"delay.h"#include"gpioh"#include"uart.h"#include"ledh" int{ //CORE/SYSTEMCLOCK96MBUSCLOCKGPIO_Init(PTC,5,1,0)小灯初始化GPIO_Init(PTE,6,1,1);//小灯初始化{}}时实想了解其详细内容,请参考CM4或CM3指南。DELAY模块介Cortex-M4SysTick定时器(SysTick24位的倒计数定时器,当计数到0时则从RELOAD寄存器中自动装载定时初值。DELAY_Init函数//功能:延时初始化//说明:对延时模块进行配置,SYSCLK表示系统内核时钟频率单位为MHZvoidDELAY_Init(uint8_tSYSCLK) {}// uint32_t ;//开始倒数{temp=SysTick-} }//{uint16_ti;{ ;//开始倒数{temp=SysTick-} }}毫秒级延时函数实际上是调用的微秒级延时函数再加上一个for循环语句来实现性要比DELAY_Us差些。口实本章将介绍k10的串口通信实验,其是用UART模块进行通信,使用k10串口来发送和接受数据,这里仅仅是最基本的通信方式,感的朋友可以通信,k10将发送数字到电脑。串口通信是单片机重要外部接口,是与外部进行通信的方式之一,Kinetis系K10微串口通信是单片机重要外部接口,是与外部进行通信的方式之一,Kinetis系K10微控制器包5路串口通信,每一路串口包5个引脚,但只需3所介绍的串口通信是8位无奇偶校验的通信方式。SIM_SCGC5寄存10~8位配置引脚为对应的功能,具体引脚复用情况需要查看引脚图(k10参考手册213页。SIM_SCGC4寄存SIM_SCGC1寄存UARTx_D寄存3.3//功能:初始化uartx模块,//参数:uartch:串 UART4的时钟源来自bus //说明:在k10上,一共有5个uart,分别为 在这里UART0禁用,因为与器的接口{uint16_tsbr;uint8_t //与uart{case//手册267页//开启uart0239PORTD-PORTD- //PTD6上使能UART0_TXD功PORTD-//SIM->SCGC4|=SIM_SCGC4_UART0_MASK;//使能uart0时钟模块,手册265NVIC_EnableIRQ(UART0_RX_TX_IRQn);开启接受中断,参见1221页,函数来自core_cm4hcaseUART1_BASE:SIM->SCGC5|=SIM_SCGC5_PORTC_MASK;//uart1相关的引脚的时钟使能,参见手册267页PORTC-PORTC- //PTC4上使能UART1_TXD功PORTC-PORTC->PCR[3]|=PORT_PCR_MUX(0x3);//PTC3上使NVIC_EnableIRQ(UART1_RX_TX_IRQn);//开启接受中断,参见1221页,函数core_cm4.hcaseUART2_BASE:SIM->SCGC5|=SIM_SCGC5_PORTD_MASK;uart2相关的引脚的时钟使能,参见手册267页PORTD-PORTD- //PTD3上使能UART2_TXD功PORTD-//NVIC_EnableIRQ(UART2_RX_TX_IRQn);//开启接受中断,参见1221页,函数core_cm4.hcaseUART3_BASE:;//手册267页//开启uart3239PORTB-PORTB- PORTB-//NVIC_EnableIRQ(UART3_RX_TX_IRQn);//开启接受中断,参见1221页,函数来自core_cm4hcaseUART4_BASE:SIM->SCGC5|=SIM_SCGC5_PORTE_MASK;//uart4相关的引脚的时钟使能,参见手册267页//开启uart4239PORTE-PORTE- //PTE24上使能UART4_TXD功PORTE-PORTE->PCR[25]|=PORT_PCR_MUX(0x3);//PTE25上使能UART4_RXD功SIM->SCGC1|=SIM_SCGC1_UART4_MASK;//使能uart4时钟模块,参见手册262default:}
NVIC_EnableIRQ(UART4_RX_TX_IRQn);//开启接受中断,参见1221页,函数来自core_cm4.h//配置uartuartch- //发送接受,参见手册1221uartch- uartch->S2&=~UART_S2_MSBF_MASK;//配置为最低位优先低uartch->C2|=(UART_C2_RE_MASK|UART_C2_TE_MASK);//开启数据发送接受,参见手册1221}////
能1个字节数:uartch:串 {while(!(uartch->S1&uartch-}//功能:1//参数:uartch: //返回:成功:1;失败//说明:{uint32_t{if((uartch->S1&UART_S1_RDRF_MASK)!=0)//判断接收缓冲区是否满,参见手册1223{*chuartch->D接受数据,参见1230return //接受成}}return //如果超时,接受失}UART1_RX_TX_IRQHandler函数(此函数名keil内已经定义好了,不可改变//功能UART1//说明: void*目前设置的当中断发生时,将接收数据并再转发出去*/uint8_tch;{}}3.4和电脑相连,安装usb转串口的驱动。用 usb转串口 3.4.2#include"sysh"#include"delay.h"#include"gpio.h"#include"uart.h"#include"led.h"//K102int{uint8_t //CORE/SYSTEMCLOCK96MBUSCLOCK UART_SendString(UART3,"\r\nYANDLD@UPC2012.1.13\r\n");{}}.3}}.34.1WDOG般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,狗,(一般在程序跑飞时),就会给出一个复位信号到MCU,使MCU复位。防止MCU死机。看门狗的作用就是防止程序发生死循环,或者说程序跑飞。4.2WDOGWDOG_STCTRLH寄存它的控制如果感可以深入研究。时钟源默认选择bus时钟。默认为1:开启看门狗,写0可以关闭看门狗。WDOG_PRESC寄存8~10WDOG_REFRESH寄存此寄存器是看门狗刷新寄存器,通过在一定的时间内先后写入0xA602u、是喂狗函数的,主要是对此寄存器操作来实现喂狗功能的。WDOG_UNLOCK4.3WDOG_Init函//看门狗初始化,并开启看void{WDOG-WDOG- //看门狗,参考k10手册504页//在这里大部分选择默认配置,时钟来busclockWDOG->PRESC=(uint16_t)0x0700u;//设置分频器,设置值为8,参见手册506WDOG-WDOG->TOVALL=(uint16_t)0x8700u;//设置超时时间值暂定为10s,时钟频率为6mhzk10502WDOG->STCTRLH|=(uint16_t)0x0001u;//开启看门狗,参考k10手册501页}WDOG_Close函//关闭看门void{WDOG-WDOG- //看门狗,参考k10手册504页WDOG->STCTRLH&=~(uint16_t)0x0001u;//关闭看门狗,参考k10手册501页}WDOG_Open函//开启看门void{WDOG-WDOG- //看门狗,参考k10手册504页WDOG->STCTRLH|=(uint16_t)0x0001u;//打开看门狗,参考k10手册501页}WDOG_Feed函voidWDOG_Feed(void){WDOG-WDOG->REFRESH=(uint16_t)0xB480u;//喂看门狗,参考k10504页}4.4#include"sys.h"#include"delay.h"#include"gpio.h"#include"uart.h"#include"ledh" K10 3int{ //CORE/SYSTEMCLOCK96MBUSCLOCK //初始化与LED连接的硬件接WDOG_Init();//初始化看门狗 { //观察喂狗于不喂狗小灯变化的}}点击编译,如果没有错误的话,就可以到k10板上。注意:喂狗函SIM_SCGC6寄存PIT_LDVALn寄存 它进行减操作直到0,将产生中断信号,再重载这个寄存器的值。PIT_TCTRLn寄存 5.3程序设此模块的程序包含有两类函数:PIT_Init、PITx_IRQHandler(keil软件已定PIT_Init//参数 代表 //功能:内部时钟中断设置voidPIT_Init(uint8_tpit,uint8_tclock,uint32_t{SIM->SCGC6|=SIM_SCGC6_PIT_MASK;//开启pit模块时钟,见参考手册269页 //开启pit模块,见参考手册974页{case0:NVIC_EnableIRQ(PIT0_IRQn);break;//开启内核接受中断函数来自core_cm4hcase1:NVIC_EnableIRQ(PIT1_IRQn);break;//开启内核接受中断函数来自core_cm4hcase2:NVIC_EnableIRQ(PIT2_IRQn);break;//开启内核接受中断函数来自core_cm4hcase3:NVIC_EnableIRQ(PIT3_IRQn);break;//开启内核接受中断,函数来自core_cm4}PIT- _TIF_MASK;//清除标志PIT->CHANNEL[pit].TCTRL|=(PIT_TCTRL_TEN_MASK|PIT_TCTRL_TIE_MASK);//开启定时}PIT0_IRQHandler函//void{PIT _TIF_MASK;//清标志}PIT1_IRQHandler函//void{PIT->CHANNEL[PIT1].T|=PIT_T_TIF_MASK;//清标志/*中断做的事情}PIT2_IRQHandler函//void{PIT->CHANNEL[PIT2].T|=PIT_T_TIF_MASK;//清标志}PIT3_IRQHandler函//void{PIT->CHANNEL[PIT3].T|=PIT_T_TIF_MASK;//清标志/*中断做的事情}5.4应用示300ms300ms#include"sysh"#include"gpioh"#include"uarth"#include"ledh"#include"pith"//K104内部定时器实验//pit.cPIT0_IRQHandlerLED1int{ //CORE/SYSTEMCLOCK96MBUSCLOCK //PIT模块使用BUSCLOCK300MS{ //闪烁LED,提示系统正在运行. }}第六章实 FTMFTM SIM_SCGC6寄存为01,0~3位是设置时钟分频的,在程序里自动计算选择合适的分频。TFTMx_MOD寄存器 SC寄存器该寄存器用于配置对应通道的工作状态及模式,5~2位是选择工作模式的,k10853页,在这里设置它为输出(具体见程序。V该寄存器用于通道计数值的,通过该位用于设置通道输出的占空除这些寄存器外还需要其它模块的寄存器配合才能开启波形输出功此程序仅适用模块 输出功能,程序包含有三个函数 _Init_Open、_Change。它们的功能和代码如下所示_Init函//功能 //说明:默认使用FTM0 _Init(uint16_tclock,uint32_t uint8_tps;/*数值计算,自动选择合适的分频及mod值*/{ps=1;mod=(clock* elseif(rate>=500){ps=2;mod=(clock* elseif(rate>=250){ps=3;mod=(clock* { //开启FTM的模块时钟,详见k10手册269页 //时钟分频设置,详见k10手册848页;FTM0- //计数器开始的值,详见k10850FTM0- //计数器最大值,详见k10850FTM0- //计数器初始化时的计数值,参见k10855}_Open函//功能:波形输出通道选择开//说明:默认使用FTM0 开启的号,本中在FTM0时,填 void_Open(uint8_tchannel,uint16_t{uint16_tmod;uint32_tmod=FTM0- {SIM->SCGC5|=SIM_SCGC5_PORTA_MASK;//开启portk10268PORTA->PCR[(channel-}{SIM->SCGC5|=SIM_SCGC5_PORTC_MASK;//开启port口的模块时钟,详见k10手册268页PORTC-}{SIM->SCGC5|=SIM_SCGC5_PORTD_MASK;//开启port口的模块时钟,详见k10手册268页PORTD-PORTD->PCR[4]|=PORT_PCR_MUX(4);//io口中portd4为ftm通道,详k10}{SIM- PORTA->PCR[(channel+3)]|=PORT_PCR_MUX(3);//配置io口中的porta的口为ftm通道,详} SC_ELSB_MASK);//清零FTM0- SC_ELSA_MASK);//k10852FTM0->CONTROLS[channel].CnV=cv;//通道的比较值,用以控制占空比详见k10手册854}_Change函//功能:波形输出占空比设//说明:默认使用FTM0 开启的号,本中在FTM0时,填 void_Change(uint8_tchannel,uint16_t{uint16_tmod;uint32_tmod=(FTM0- }本示例程序设置FTM模块产生波形,0通道产生占空比为百分之#include"sysh"#include"gpio.h"#include"uarth"#include"led.h"#include"pith"#include"ftm.h" K10 实验5实验int{ //CORE/SYSTEMCLOCK96MBUSCLOCK //初始化与LED连接的硬件接_Init(48,1000FTMBUSCLOCK1K//PTA3为JLINKTMS引脚,测量时请拔掉JLINK,再 模 //占空比40% //占空比70%PTA4 { }} 第七章LCD实在这一章节里将简单介绍一下本k10板上的LCD液晶屏的简单应用方法,通过本章的学习希望能够帮助大家了解液晶屏显示的基本工作原理和操作LCD本板上搭载的是尺寸为176*220的彩色液晶屏,该液晶屏采用SPI通信LCD程序中的lcd文件。voidLCD_WRG_REG(uint8_t此函数用于驱动液晶,对液晶屏的寄存器进行写操作voidLCD_WR_DATA(uint8_t此函数用于驱动液晶屏,对液晶屏进行写数据操作void//LCDvoidLCD_WriteRAM(uint16_t//LCDvoid//LCDvoid//Xpos:voidLCD_DrawPoint(uint16_tx,uint16_t//Color:要清屏的填voidLCD_Clear(uint16_t (xend-xsta)*(yend-voidLCD_Fill(uint16_txsta,uint16_tysta,uint16_txend,uint16_tyend,uint16_tvoidLCD_DrawLine(uint16_tx1,uint16_ty1,uint16_tx2,uint16_tvoidLCD_DrawRectangle(uint16_tx1,uint16_ty1,uint16_tx2,uint16_t voidDraw_Circle(uint16_tx0,uint16_ty0,uint8_tvoid //num:要显示的字符:"//size:voidLCD_ShowChar(uint16_tx,uint16_ty,uint8_tnum,uint8_tfont,uint8_t://size: voidLCD_ShowNum(uint16_tx,uint16_ty,uint32_tnum,uint8_tlen,uint8_t//size: 0,填充模式;1,叠加模voidLCD_Show2Num(uint16_tx,uint16_ty,uint16_tnum,uint8_tlen,uint8_tfont,uint8_t//16voidLCD_ShowString(uint16_tx,uint16_ty,constuint8_tvoid//*Buffer 平滑度//startd0为从白色开始//endd=deepen显示完整深度图像(源图像voidBMP24FadeIn(uint8_tdeepen,uint8_tstartd,uint8_t//per#include"sys.h"#include"delay.h"#include"gpioh"#include"uart.h"#include"ledh"#include"pit.h"#include"ftmh"#include"lcdh" K10 int{ //CORE/SYSTEMCLOCK96MBUSCLOCK //LED初始 BMP24FadeIn(10,1,8);//淡入BMP24Shutter(6);//6分百叶窗显示LOGOPOINT_COLOR=RED;//前景色红色LCD_ShowString(30,50,"LCDTESTOK!"); {}}在这一章将介绍K10外部中断的使用,主要实现外部中断的功能,当有外部中断发生时将产生中断相应。将按照规定的动作进行响应。在k10 中,外部中断处理实际上是PORT端口的一种功能,只要简单的配置PORT寄存器就可以实现。8.2EXITSIM_SCGC5寄存PORT端口的引脚控制寄存器,在这里配置该引脚为外部中断,需1619示例程序里由于下拉了电阻仅能使用上升沿或下降沿形式触发中断。110位GPIOx_PDDR寄存此寄存器GPIO的章节里已经详细介绍了,在这里配置相应的端口8.3//功能:exit//说明 io端 10 11 12{GPIO_Type*p;{ p=PTA;SIM-核接受中断,函数来自core_cm4.h p=PTB;SIM- //开启PORTB口使能 p=PTC;SIM- //开启PORTC口使能 p=PTD;SIM- //开启PORTD口使能 p=PTE;SIM- //开启PORTE口使能default:} //下拉电阻,参见k10240port->PCR[index]&=~PORT_PCR_MUX_MASK;//mux位清 }PORTx_IRQHandler函//功能:外部中断发生时所做的事void{uint8_tfor(i=31;i>0;i--)//判断哪个引脚的中断发生,i表示哪个引脚发生的中{if((PORTx-}case0:/*做的事*/;break;case1:/*做的事*/;break;case2:break;/*做的事*/default:break;}PORTx- //清除标志位参见k10241}8.4本示例程序设置PE17、PE19这两个引脚为上升沿触发外部中断,lcd液晶#include"sysh"#include"delayh"#include"gpio.h"#include"uarth"#include"led.h"#include"pit.h"#include"ftmh"#include"lcd.h"#include"exti.h" K10 7EXTIuint8_t//E17E19C5(小灯)int{ //CORE/SYSTEMCLOCK96MBUSCLOCK //LED初始//显示进中断次 //SPILCD初始化BACK_COLOR=BLACK;//背景色黑色LCD_Clear(BLACK);//黑色背景POINT_COLOR=0X5458;//前景浅蓝色 //显
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演讲技巧口才15篇
- 关于参观类实习报告集锦9篇
- 药物流行病学杂志稿约
- “三全育人”视域下药理学实验课程思政建设探究
- 2024-2025学年高中数学 第1章 导数及其应用 1.2 导数的计算 1.2.1 1.2.2 基本初等函数的导数公式及导数的运算法则(二)(教师用书)教学实录 新人教A版选修2-2
- 励志演讲稿15篇
- 第11课 元朝的统治2023-2024学年七年级下册历史同步教学实录
- 2024-2025学年高中语文 第六单元 二 非攻教学实录8 新人教版选修《先秦诸子选读》
- 《电机拖动》-公开课件
- 基于智能硬件和社区服务升级的租房与智慧社区共享平台18
- 陕西省西安市碑林区铁一中学2020-2021学年七年级上学期期末数学试题(含答案解析)
- 简支梁、悬臂梁挠度计算程序(自动版)
- 埋地钢管结构计算
- X-Y数控工作台及其控制系统设计
- 统编版小学四年级语文上册五六单元测试卷(附答案)
- 高支模技术交底(新版)
- 电工新技术介绍(课堂PPT)
- 我最喜欢的节日的小学英语作文我喜欢的节日英语作文.doc
- 机电设备维护保养技术
- 对于部门整体支出绩效评价结果整改报告
- 121课堂教学新模式
评论
0/150
提交评论