物联网开发平台用户手册_第1页
物联网开发平台用户手册_第2页
物联网开发平台用户手册_第3页
物联网开发平台用户手册_第4页
物联网开发平台用户手册_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

保留。非经华清远见教育研发中心同意, 网盘地址 /fs-11c14(或 目 CooCox 安装USB驱 Flash 使用RealViewMDK创建工 使用RealViewMDK编译、工 使用RealViewMDK调试程 Cortex-M0综 LED 蜂鸣 ADC试 OLED实 CAN总线实 uC/OS操作系 风扇 基于Android智能家居系 平台华清远见专为物联网教学研发的FS_11C14开发板,基于NXPLPC11C14微控制器FS_CoLink仿真器,使用者可以在不另外配置仿真器的情况下进入开图1FS_11C14硬件资源处理 -处理器 -32KB -32KB -8KB2个扩展UART CAN总 - 2LED风 -1个可控电风蜂鸣风 -1个可控电风 1个复位键1个复位键1个功能键电 -1个1000mAh锂电电 -1个1000mAh锂电FS_11C14器 SPI转2ZigBee模 蜂鸣 电池电 电位 温/湿

7图2FS_11C14开发板功能继华清远见研发中心自主研发的基于Cortex-M0的物联网教学平台及配套案例资料和NXPRC522FS_RFID开发套件也于近期宣布研制的消息。MFRC522是恩智浦公司(NXP)专为亚洲市场特别量身定制的一款非接触读写华清远见研发中心自主研发的FS_RC522开发套件采用了超低功耗、低价格的为模块用时,可以提供串口、SPI接口。套件上集成USB转串口,用户也可以通过USB线调试新的程序。图 FS_RC522开发套便的连接PC机或其它带有USB主机接口的设备,从而实现和FS_11C14组网通讯。FS_CC2530模块的扩展资源包含电位器、按键中断、LED灯等外设。图 环境盘中的位置为“光盘\工具软件”,本章软件使用的环境为WindowsXP。RealViewMDK全称为RealViewMDKuVision4.22aReal-timeLibrary实时库。5KeilRealViewMDKCooCoxCooCoxCoLinkEx是一款支持SWARMCortexM3和CortexM0设备。CoLinkEx直接支持CoIDE和CoFlashKeilRealviewMDK,IAREmbeddedWorkbench无缝集成。支持CortexM0和CortexM3支持JTAG支持CoFlash,CoIDE,MDKKeilRealViewMDK4.03(MDK4.13a除外IAREmbeddedWorkbench5.50CooCoxCooCox更新CoLinkEx更新CoLinkEx的固件,把CoLink的固件升级到版本,Colink最近版本上电(ColinkEX连接到PC)等待PCCRP2ENABLD(CRPDISABLD)的可移动磁盘,如果没有出现,请多按几次复位键(Reset)或重新上电,如图7。6可移7需要安装USB驱能。在使用器件之前需要安装驱动程序,否则在直接使用CoLink仿真器进行程序的时会提示无法识别并且无法完成所要的功能。执行ColinkExUsbDriver应用程序(路径:工具9测到你的硬件。如图10:8ColinkExUsbDriver驱动的安9ColinkEx驱动安装安装CoMDKPlugin插运行CoMDKPlugin应用程序。安装KeilCoLink的插件(Keil路径(6)相同图 CoMDKPlugin的安CoCenter版本控制制器来实现版本的控制,可以使用软件来检测的USB驱动和MDK插件,双击11CoCenter版本控IAREmbeddedWorkbench8位、1632位的微处理器和微控有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式IAREmbeddedWorkbench有效提高用户的工作效率,通过IAR工具,用户可以工作时IAREmbeddedWorkbenchIDE提供一个框架,任何可用的工具都可以完整地嵌AVRIARIARXLINKIARXARIARXLIBTMIARC-SPY在开发板配套光盘中找到IAREmbeddedWorkbench安装软件(路径:工具软件orkbench图 图 IAREmbeddedWorkbench安装向导初始图 接受协议进行下一步安UART转USB接口,可在该软件上将网络的拓扑结构及各个传感器节点的数据以图形方式形象地显示在PC机终端上。(API,包括应用子层支持(ApplicationSub-laygerSupport,APS、ZigBee设备对象(ZigBeeDevice(注意:三个软件安装应该一致图 TexasInstruments安装向导初始图 Setup_SmartRFProgr_1.9.0安装过图 Setup_SmartRFProgr_1.9.0安装过图 ZStack-CC2530-2.3.0-1.4.0安装过FlashFlashMagic是基于NXP微处理器的PC机编程工具,它使用串口或者以太网协议Magic图 镜像使用FS_Colink烧写(推荐FS_CoLinkSW1OffUSBFS_CoLink。CoLink图 FS_CoLink配置图 FS_11C14开发板配置图 图 打开工程文(FS_11C14开发板全功能测试文件路径:“光盘\烧写镜像\FS_11C14\M0\Full\24图 编译工程文图 工程编译成①工程名,选择第一项Options图 配置工Debugger图 配置Debug调试信闭Options窗口。图 配置Utilities调试信图 文图 擦除图 烧写图 烧写完成OLED显图 常见错误图 常见错误①CoLink②CoLink22节步骤重新安装CoLink图 驱动安装错③开发板电量不足。因为开发板是用电池供电,如果电量不足也会出现不进程序使用FlashMagic软件ISPProgramming由于ISP方式采用了编程器,是一种高速、稳定、简单的程序方式,所以一ICP方式具P89LPC932 图图 ISP原理框 FlashMagicFS_11C14理器里选择串口,选择所要的程序,将开发板上的MCU_ISP拨动开关至于On,板子上电,点击Start即可程序。S_11C14图 图 完FS_CC2530ZigBee图 图 打开工程文115200\\FS_CC2530ZigBee”的任一IAR工程文件图 选择透传工程文43图 编译工会提示安装驱动,在完成2.4节后自动寻找安装即可。图 连接ZigBee仿真器与FS_CC2530模图 协调器程图 仿真器正在程图 退出调试窗JTAG口处。图

图 选择终端节点程图 终端节点程图 终端节点程序成ZigBee模块由USB图 ②打开设备管理器,记下串图 记下串图 使用串口调试工具打开串FS_11C1410,Zigbee实验,点击方向中进入,可以看到三个以看到“oZigBee!”字样,说明FS_11C14向独立ZigBee模块发送成功。FS_11C14”字样,说明独立ZigBee模块向FS_11C14发送成功。图 FS_11C14平台显图 串口调试助手显图 常见错FS_RC552RFID序源码\RFID中标注。先通过该接口将FS_RC522RFID开发套件与电脑主机相连。图 FS_RC522RFIDUSB接①首先选择连接设备“②根据“设备管理器”中的端设置“COM图 图 用于选择编译生成的Hex文件,选择正确的Hex文件,在这里选择“光盘\烧写镜像\FS_RC522(RFID)\FS_RC522_RFID.hex”文件。然后执行下面的操作: y图 擦除开发µVisionIDE10Keil开发工具。8位、16MCU,还是改用ARM32µVisionIDE进行编63RealViewMDK开发环境高级GDI接口,可用于目标硬件的软件调试和ULINK2用于应用程序到FlashROM中的Flash编程器 启动代码配置向设备模拟

图 启动代码配置向标MCU没有更深了解的情况下,仍然可以立即开始开发软件。其仿真功能包括:图 设备模拟器视性能分析图 RealViewMDK性能分析器视RealView编译器RealViewMDK集成的RealView编译器(与RVDS使用一样的编译器)是业界最优秀为进一步改进基于ARM处理器的应用代码密度,RealViewMDK采用了新型MicroLib器应用的需求。MicrolibC库可使运行时的库代码密度大大降低。RealViewReal-timeLibrary实时RealView实时库(RealViewRL-ARM)ARMMCU的嵌入式系统中的实ARM7、ARM9和Cortex-M0系列的处理器,使得在ARM处理器上运行实时程序非常容易。多任务(可以在单CPU上管理几个工作或任务ModemSMTPUSBWindows的USB设备驱动可用于LPC2000RealViewMDK创建工的Vision工程,必须做如下处理:选择工具集;创建工程文件;选择设备。选择工具集。Vision可以使用ARMRealView编译工具、ARMADS编译器、GNUGCCKeilCARMGNUGCC编译器或ARMADS编译器时必须另外安装它们的编译集。实际使用的工具集可以选择“Project→Manage”命令,在弹出的“Components,EnvironmentandBooks”框中选择“Folders/Extensions”选项卡,如下图67ADSV1.2:C:\ProgramRealView评估版2.1:C:\ProgramFiles\ARM\RVCT\Programs\2.1\350\eval2-sc\win_32-pentium。各种GNU版本的例子。uclib的GNUV3.22:GNU-Tool-Prefix:arm-uclibcCygnusFolder带标准库的GNUARMV4:GNU-Tool-Prefix:arm-elf-CygnusFolder:C:\ProgramKeil根 的设置是基于µVision/ARM开发工具的安装 创建工程文件。选择“Project→New→µVisionProject”命令,µVision4将打开一个 68选择设备。在创建一个新的工程时,Vision要求为这个工程选择一款CPU。当选择设备框显示了Vision的设备数据库后,只需要选择用户所需的微控制器即可。例如,下图显示了选择恩智浦的LPC11C14微控制器,简化了工具的配置。69图图 提 71图 快捷菜 图 工程文 示意76中的“AddGroup...”命令,这样就添加了一个组,下图中的NewGroup即是。图 添加图 快捷菜创建源文件后,就可以将文件添加到工程中。µVision提供了几种方法将源文件添加到使用RealViewMDK编译、工设置目标硬件的工具选项。Vision可以设置目标硬件的选项。通过按钮或选择“Project→OptionsforTarget”命令,打开“OptionsforTarget”框,在“Target”选项卡中设置目标硬件及所选CPU片上组件的参数。LPC11C14的一些参数设置如下图所示。图 LPC11C14设置参表参数设置框各选项的内 设备的晶振(Xtal)频率。大多数基于ARM的微控制器都使用片上PLL产CPU时钟,所以一般情况下CPU的时钟与XTAL的频率是不同配置片内、片外的ROM区地址及大指定目标硬件的片内和片外的RAM区地址及大Code旋转产生ARMcodeThumb设置,如下图所示,勾选“CreateHEXFile”复选框即可。图 输出配置C/C++”图 库的配图 库文器控制文件在文件夹..\ARM\GNU或..\ARM\ADS中。为了与目标硬件相匹配,用户可个文件可以通过“Project-OptionsforTarget”框的“Linker”选项卡添加到工程中。图图配置文 MemoryLayout分配方式,应该采用ScatterFileScatter文件;对于简单的工程,直接指定R/O和R/W的址即可。关于Scatter文件的内容,请读者参考ARM工具的相关资料。程序。当编译有语法错误的应用程序时,µVision将在“OutputWindow→Build”窗口中显示错误和警告信息。单击这些信息行,µVision将会定位到相应的源代码处。下图显示了编图 编译结果输出源文件编译成功产生应用程序以后就可以开始调试了,选择“Debug→Start/Stopdebug“Ctrl+F5)RealViewMDK调试程图 Simulator程序调试界寄存器。当处理器处于任何一种模式时,可以查看Current中所有的寄存器的值。处理器从 window”中的Watch#1,加入需要查看的变量就可以查的全局变量的值。 时状态信息。全速运行程序后,GPIO的状态就按照程序的控制开始变化。工程选项设在“ProjectWorkspace→Files”窗口单击鼠标右键,在弹出的快捷菜单中可以设置文件表选 Vision的设备数据库中选择为应用程序指定硬件环定义工具链的输出文件,在编译完成后运行用户指定工具链产生的所有列表文C设置C编译器的工具选项,例如代码优化和变量分设置汇编器的工具选项,如宏设置器的相关选项。一般来说,器的设置需要配置目标系统的分配。设器定义器类型和段的位Flash编程实图 选项设置图 选项设置2、 IAR的启动与项目打图 IAR向图 打开工这里选择图 打开工图 添加文新建项目和程序文89图 创建工 图 选择图 保存文件图 添加文图 保存文图 添加文件图 添加文图 选择文点击保存,可以看到左边workspace图 添加完设置工程参图 选择图 Options界GeneralOptionsTarget在Target下,Device栏选择“TexasInstruments”文件夹下CC2530.i51Datamodel栏下拉菜单选择“Large”。图 选择i51文图 DataData图 DataPointer图 Stack/HeapLinkerOutput设置输出文件名及格式Outputfile为“11.hex”。勾选“AllowC-SPY-specificextraoutputfile”。图 Output注意:如果需要生成.hexSmartRFFlashProgrammerFormat选图 生成供SmartRFFlashProgrammer烧写的hex文Config设置LinkercommandfileOverridedefalt”,设置为图 ConfigDebuggerSetup图 Setup编译和连 图 保存工WarnnigError图 编译信图111源程序文件错误图 编译通程 与调程序编译完成后,就可以至目标板进行仿真了,点击或Ctrl+D键进行程序图 选择仿真检查、复位仿真器,重新点击,出现进度条,表明程序正在,完成后出现DEBUG工具条,利用这些工具条即可进行程序调复位按钮,目标板回到程序起始 Break按钮 StepOver按钮 StepInto按钮 StepOut按钮 NextStatement按钮 Runtocursor按 Go按钮 StopDebugging按低功耗ARMCortex-M0微控制 Cortex-M05-1包含组件及特处理令(用于多,SIMD和加强的DSP指令除外具有分组的堆栈指针寄存器包含硬件除法指令:SDIVUDIV指两种工作模式:处理模式(handlermode)和线程模式(thread两种处理器状态:Thumb状态和调断延ARMv6架构的BE8/LE和非对中断向量控制器中断优先级可动态地重新配优先级分组:占先中断等级和非占先支持末尾连锁(tail-chaining)和迟来(latearrival)中断处理机制。这样,在两个中断使能背对背中断(back-to-backinterrupt)处理,减少中断处理器在进入中断状态时自动保存,中断退出时自动恢复,不需要多余的指器保护单元8个器子区功能(SRD),实现对器区的有效使可使能背景区,执行默认的器映射属总线接指令区总线:负责对代码区系统总线:用于内存和外私有外设总线:负责一部分私有外设的,主要包括调试组件低成本调试解决方基于ARM全新的CoreSight架构,使得当内核在运行、中止甚至处于复位状态时,通过试系统,可以对系统中包括Cortex-M0寄存器组在内的所有器和寄存器进行调使用“调试接口(DAP)”代替JTAG接Flash修补和断点单元(FPB),实现断点和代码修数据观察点和触发单元(DWT),实现观察点、触发资源和系仪表宏单元(ITM),支持对printf类型的调端口的接口单元(TPIU),用来连接端口分析可选的嵌入式宏单元(ETM),实现指综合LED2、 3、RealViewMDK(Keil图LPC11C140、1、2、34I/o0、1、211个寄存器,第3个端口有4个寄存器。图PIO3_0PIO3_1输出低电平时,LED1LED2PIO3_0和PIO3_1输出低高电平时,LED1和LED2灭。在程序中我们通过函数voidGPIOSetValueuint32_tportNum,uint32_tbitPosiuint32_tbitVal设置PIO3_0和PIO3_1的输出值来控制LED灯的亮灭。int{// //设置PIO3_0 PIO3_01 {for(i=0;i<250000; PIO3_01for(i=0;i<250000;i++); GPIOSetValue(PORT3,0,1); //PIO3_0输出1,熄灭LED1}}蜂鸣1、掌握功2、利用定时器实现蜂鸣器控2、 3、RealViewMDK(Keil5PL-2303HX图volatileuint32_tperiod=50; voidspeaker_op(uint8_t //传1响传0不响{ {caseLPC_TMR32B1->PR init_timer32(1,period,MATCH0); case}} {if(timer_num==1){/*SomeoftheI/OpinsneedtobeclearfullynnedyouusebelowmodulebecauseJTAGandTIMERCAP/MATpinsaremuxed.*/LPC_SYSCON->SYSAHBCLKCTRL|=(1<<10);/*Setuptheexternalmatchregister/*Setuptheoutputs/*Ifmatch0isenabled,settheoutput*/if(match_enable&0x01){ &= |= }/*Enablethe sandenableMatch3 C=(1<<3)|(match_enable); /*CT32Bn_MAT0的 能、使能匹配通道3设置周期*//*Setupthematchregisters/*settheperiodvaluetoaglobalvariable*/timer32_1_period=period;LPC_TMR32B1->MR3=timer32_1_period; LPC_TMR32B1->MR0=timer32_1_period/2; /*MR3上的复位:MR3TC匹配时将TC复位}{}}ADC试1、掌握ADC2、学会ADC2、 3、RealViewMDK(Keil(VR1图图图

: :ADC : : :{ //清屏OLEDOLED_DisStrLine(0,0,"Voltage"); {adv= //ADC转化数据函vol=adv*3.3/1023;adv=snprintf(buf,21,"ADC:%d.%dV ",adv/10,adv%10); //将处理后的数据存入buf //将buf中的内容显OLED ",adv/10,}}看门狗试2、 3、RealViewMDK(Keil4Reset键复位开发板,观察OLED系统上电后,OLEDwatchdogTest!”,表示看门狗初始化及喂狗完成,图LED1将熄灭。GPIOSetDir(PORT3,0,1); //SetPIO3_0tooutputGPIOSetValue(PORT3,0,0); //PIO3_0output1,TurnonLED1SPI_Init(0,8,2);OLED_DisStrLine(1,0," WatchdogTest!"); for(i=0;i<250000;i++);for(i=0;i<250000;i++);{{}

//PIO3_0output1,Turnoff}Interrupt中断的使1LPC11C1432Timer1、FS_11C14LED1循环一亮一灭(如图图图PIO3_0输出低电平时,LED1PIO3_0输出低高电平时,LED1voidGPIOSetValueuint32_tportNum,uint32_tbitPosi,uint32_tbitVal)PIO3_0的输出值来控制LED灯的亮灭。void{if(LPC_TMR32B0->IR&0x01{LPC_TMR32B0->IR=1;/*clearinterruptflag*/}if(LPC_TMR32B0->IR&(0x1<<4){LPC_TMR32B0->IR=0x1<<4;/*clearinterruptflag*/}}{{,}{,}{}}timer32_0_capture50时,LED1亮,当timer32_0_capture的值大于等于50并且小于100时LED1灭,否则timer32_0_capture。UART实8PL-2303HX2、 3、RealViewMDK(KeiluVision4)数据位:8位停止位:1位图图一个数字(如:3)3中的信息图图图UART发送器模块U0TX接收CPU或主机写入的数据,并且将数据缓存到UART的UART模块(U0RX)串行输入线RXD的有效输入。UARTRX移位寄器(U0RSR)通过RXD接收有效字符。当U0RSR接收到一个有效字符时,它将该字符传送到UARTRX缓冲寄存器FIFO中,等待CPU或主机通过通用主机接口进行。U0TX和U0RX所发送的状态信息会被存放到U0LSR中。U0TX和U0RX的控制信息会被存放到U0LCR中。{while(Length!=0{/*THREstatus,containvaliddata#if!TX_INTERRUPT while(!(LPC_UART->LSR&LSR_THRE));}

/*BelowflagissetinsidetheinterrupthandlerwhenTHREoccurs.*/while(!(UARTTxEmpty&0x01));UARTTxEmpty=0;/*notemptyintheTHRuntilitshiftsout}void{uint8_tIIRValue,LSRValue;uint8_tDummy=Dummy; /*skippendingbitinIIRIIRValue&=0x07; /*checkbit1~3,interruptidentification*/if(IIRValue==IIR_RLS) /*ReceiveLineStatus*/{/*ReceiveLineStatusif(LSRValue&(LSR_OE|LSR_PE|LSR_FE|LSR_RXFE|{/*Thereareerrorsorbreakinterrupt/*ReadLSRwillcleartheinterrupt*/UARTStatus=LSRValue;Dummy=LPC_UART->RBR;/*DummyreadonRXtointerrupt,thenbailout}if(LSRValue&LSR_RDR)/*ReceiveDataReady{/*IfnoerroronRLS,normalready,saveintothedatabuffer./*Note:readRBRwillcleartheinterrupt*/if(UARTCount>=UART0_RBUF_SIZE){UARTCount= /*bufferoverflow}}}elseif(IIRValue==IIR_RDA)/*ReceiveDataAvailable{/*ReceiveDataAvailable*/if(UARTCount>=UART0_RBUF_SIZE){UARTCount= /*bufferoverflow}} /*Charactertimeoutindicator{/*CharacterTime-outindicator /*Bit9astheCTIerror}{/*THREinterrupt /*CheckstatusintheLSRtoseevaliddatainU0THRornot{}{}}}OLED实1、掌握OLED2、学会OLED1、FS_11C141、在OLED文件夹下找到并打开project.uvproj3、通过FS_Colink编译好的工程到FS_11C14开发板(VR1图图void{//Fill_RAM(0x00);//Clear//ShowPattern-UniV//FadeIn/Out(FullScreen)//Scrolling(PartialorFullScreen)//Upward-TopAreaTopAreaRightward-TopArea//Down&Leftward-TopAreaDelay(5);//Leftward-BottomAreaDelay(5);//Rightward-BottomArea//AllPixelsOn(TestPattern)Fill_RAM(0x00);//Clear//ShowString-}SysTick试SysTick1、FS_11C141SysTickproject.uvproj3、通过FS_Colink编译好的工程到FS_11C14开发LED2LPC11C140、1、2、34I/o0、1、211个寄存器,第3个端口有4个寄存器。在硬件上,PIO3_0引脚连接到LED1的控制引脚,PIO3_1连接到LED2的控图由图可以看出当PIO3_0和PIO3_1输出低电平时,LED1和LED2亮。当PIO3_0和PIO3_1LED1LED2GPIOSetValueuint32_tportNumuint32_tbitPosiuint32_tbitVal)PIO3_0PIO3_1LED灯的亮灭。void{Tick++;if(Tick=={GPIOSetValue(PORT31,0PIO3_10,}elseif(Tick>={GPIOSetValue(PORT31,1PIO3_11,Tick=}}CAN总线实CANCAN1、FS_11C14112_CANproject.uvproj3、通过FS_Colink编译好的工程到FS_11C14开发板4Reset5OLEDCANUSBCAN将程序到FS_11C14开发板之后,OLED屏会显示下图的测试菜单]图图图uC/OS操作1、FS_11C14将程序到FS_11C14开发板之后,OLED屏没有显示。数码管进行计数{{{);//}}}会{uint8_terr;{on_off=~on_off;{GPIOSetValue(PORT0,20GPIOSetValue(PORT1,11}{GPIOSetValue(PORT0,21GPIOSetValue(PORT1,10}}}行3、LED关于LED灯的控制我们面已经介绍过了,只需要通过GPIO口我们就可以0.5sLED灯的状态反转一次。任务通过消息邮箱完成与其{{GPIOSetValue(PORT3,00);//GPIOSetValue(PORT3,10);////广播方式发送计数值指针(Mbox)cntOSTimeDlyHMSM(0,0,0,GPIOSetValue(PORT3,01);//GPIOSetValue(PORT3,11);//OSTimeDlyHMSM(0,0,0,}}4、7{uint8_terr;uint32_t* { }} t的值在7段{uint32_tlu0;{lu0=OSTimeGet()/ OSTimeDlyHMSM(0,0,1,}}风1、掌 2、利 2、 3、RealViewMDK(Keil10图图{case .numb-- case .numb.numb= caseKEY_SEL: {caseGPIOSetValue(PORT0,2,0); //PIO0_2output0,TurnonFANcaseGPIOSetValue(PORT0,2,1); //PIO0_2output1,TurnoffFAN}case}三轴加速度传感1、FS_11C141ACC文件夹下找到并打开project.uvproj图图void{ int32_txoff=0;int32_tyoff=int32_tzoff=0;int8_tx=0;int8_ty=0;int8_tz=0;OLED_DisStrLine(0,0,"Axis-3");/*Assumebaseboardinzero-gpositionwhenreadingfirstvalue.*/acc_read(&x,&y,&z);xoff=0-x;yoff=0-y;zoff=0-z;{/*Accelerometer*/y=z=snprintf(buf,20,"Accx:%d",x);//显示坐标值OLED_DisStrLine(2,0,(uint8_t*)buf);printf("\r\nAccx:%d, ",x);snprintf(buf,20,"Accy:%d",y);printf("Accy:%d,",y);snprintf(buf,20,"Accz:%d",z);printf("Accz:%d.",z);}光敏传感2、 3、RealViewMDK(Keil4Reset键复位开发板,观察OLED图OLED139正常环境140用笔遮挡后值变141用光照后值图void{ OLED_DisStrLine(0,0,"Light"); {lux= //Lightsnprintf(buf20, ", OLED_DisStrLine(2,0,(uint8_t*)buf); ",lux);}}uint32_t{uint32_tdata=0;uint8_tbuf[1];buf[0]=ADDR_LSB_SENSOR;data=buf[0]=ADDR_MSB_SENSOR;data=(buf[0]<<8|/*Rext=100k/*E=(range(k)* /2^n//return(range*data/width);data*=range;returndata;}温度传感1DHT112DHT111、FS_11C141Temp_Humproject.uvproj3、通过FS_Colink编译好的工程到FS_11C14开5DHT11图图

图DATADHT11之间的通讯和同步,采用单总线数据格式,一次传送40位数据,先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位。{{{temp[0]&=],}{snprintf(buf,16,"Temp:%d.%d",temp[0],}OLED_DisStrLine(2,0,uint8_t*)bufTempsnprintf(buf,16,"Hum:%d.%d",hum[0],hum[1]);OLED_DisStrLine(3,0,uint8_t*)buf}{}}{uint32_tuint8_thum_10,hum_01,temp_10,temp_01,chksum,chk;uint32_ttc1,tc;uint32_ti;p3_2_counter=0;cnt_last=p3_2_counter;GPIOIntDisable(PORT1,5);GPIOSetDir(PORT1,5,1);//SetPIO1_5tooutputGPIOSetValue(PORT1,5,0);for(i=0;i<3;i++){GPIOSetInterrupt(PORT1,5,0,0,i&0x01);while(p3_2_counter==cnt_last);cnt_last=}for(i=0;i<40;i++)//40位数{GPIOSetInterrupt(PORT1,5,0,0,1);while(p3_2_counter==cnt_last);cnt_last=p3_2_counter;tc1=p3_2_tc;GPIOSetInterrupt(PORT1,5,0,0,0);while(p3_2_counter==cnt_last);cnt_last=p3_2_counter;if(p3_2_tc<{tc=tc1-}{tc=48000-(p3_2_tc-}if(i<{hum_10<<=if(tc>=2328)}elseif(i<{hum_01<<=if(tc>=2328)}elseif(i<{temp_10<<=if(tc>=2328)}elseif(i<{temp_01<<=if(tc>=2328)}{chksum<<=if(tc>=2328)chksum|=0x01;}}1、掌握RFID2、学会RFIDFS_RC5221、FS_11C141RFID文件夹下找到并打开project.uvproj图图RFIDOLEDRFID图图然 key,x; i,.numb=.item[01.ReadCard";//lCD.item[1]="2.Write.item[2]="3.Writedata2"; GPIOSetDir(PORT2,8,0); {{case .numb> case .numb caseKEY_SEL://根据键值选择是读卡,还是写卡{case1://读卡{if(x<={snprintf(buf,2,"%c",rbuf[i+2]);OLED_DisChar(2-1+5,x,0,buf[0]);x+=}}chksum={OLED_DisStrLine(2-1+6,0,"Ok printf("\r\nOk");}{OLED_DisStrLine(2-1+5,0, OLED_DisStrLine(2-1+6,0,"NoCard printf("\r\nFail");}{}{

OLED_DisStrLine(2-1+6,0,"write printf("\r\nOk");OLED_DisStrLine(2-1+5,0, OLED_DisStrLine(2-1+6,0,"Fail printf("\r\nFail");}case3://写数据{OLED_DisStrLine(2-1+6,0,"writeABCDEFGHIJOk");

}{OLED_DisStrLine(2-1+5,0, OLED_DisStrLine(2-1+6,0,"Fail printf("\r\nFail");}}case}{}}ZigBee无线通信模2、 3、RealViewMDK(KeilzigbeezigbeeIDZigbeeID的修改,见《如何修改zigbee网络中的ID》文档。在试验中,电脑端为协调器,M0为节点,协调器通过USBPCSPIM0,M0将数据显示与LCD屏。直观的理解为zigbee协调器和节点之间的数据通传。

图 int8_tx=2;int8_ty=0;int8_ti=0;int8_tj=6;uint8_tbuf[12]="ZigBeeTest:"; //EnablesclockforGPIOLPC_IOCON->PIO0_1&=~0x07; /*CLKOUT/*Calledforsystemlibraryincore_cm0.h.*/SPI_Init(1,8,2);{for(i=0;i<12;{j+=6;}j={}{OLED_DisChar(x,y,0,rd);y+=6;if(y>{if(x>{x=2;}y=}}}zigbee图图倾斜开1、掌握ADC2、学会ADC2、 3、RealViewMDK(Keil红 黑 绿 S(接M0实验板插针J1的

图图

: :ADC : : :{ //清屏OLEDOLED_DisStrLine(0,0,"Voltage"); //SetPIO3_0toGPIOSetValue(PORT3,0,1); PIO3_0output1,TurnoffLED1 //ADC初始化 {adv= //ADC转化数据函vol=adv*3.3/1023;adv=snprintf(buf,21,"ADC:%d.%dV ",adv/10,adv%10); //将处理后的数据存入buf //将buf中的内容显OLED ",adv/10, //PIO3_0output1,Turn //PIO3_0output1,Turn}}火焰传感图霍尔传感2、 3、RealViewMDK(Keil1红 黑 绿 S(接M0实验板插针J1的图图//配置为普通IO,输入模式LPC_IOCON->R_PIO1_2|=0x01; /*CLKOUT*/GPIOSetDir(PORT1,2,0); GPIOSetDir(PORT3,0,1); //SetPIO3_0tooutputGPIOSetValue(PORT3,0,1); //PIO3_0output1,TurnoffLED1{

{ //PIO3_0output1,Turnoff}{GPIOSetValue(PORT3,0,0); //PIO3_0output1,TurnoffLED1OLED_DisStrLine(3,0,"ok }避障传感2、 3、RealViewMDK(Keil 11 12 按Reset键复位,倾斜传感器,观察OLED显示1红 黑 绿 OUT(接M0实验板插针J1的黄 EN(接M0实验板插针J1的图 图GPIOSetDir(PORT3,0,1); //SetPIO3_0tooutputGPIOSetValue(PORT3,0,1); //PIO3_0output1,TurnoffLED1GPIOSetDir(PORT2,6,1); SetPIO2_6tooutput //配置为普通IO,输入模式LPC_IOCON->R_PIO1_2|=0x01; /*CLKOUT*/GPIOSetDir(PORT1,2,0);{{OLED_DisStrLine(3,0,"Leaving");}

巡线传感2、 3、RealViewMDK(Keil13 15 16 (VR1,红 黑 绿 S(接M0实验板插针J1的图外图上图OLED上在黑丝带上(online(offline()LPC_IOCON->R_PIO1_2|=0x01; /*CLKOUT*/GPIOSetDir(PORT1,2,0); {,{OLED_DisStrLine(3,0,"on }

触摸传感2、 3、RealViewMDK(Keil17 19 20 红 黑 绿 AO(接M0实验板插针J1的{

图}

//PIO1_1output1,Turn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论