1、5.15.25.35.65.45.5 并行并行I/OI/O接口接口 内部总线 外部引脚 D1 D2 U1 (a)开漏输出示意图(b)开漏输出控制原理图 (a)二极管钳位保护 (b)ESD专用器件保护 LPC1700引脚 MODE:GPIO工作模式选择工作模式选择 00输入,输入,01为为10MHz输出,输出,10为为2MHz输出,输出,11为为50MHz输出;输出;CNF:(:(1)MODE=00时,作为输入模式选择时,作为输入模式选择 00 模拟输入模拟输入 01高阻输入高阻输入 10上下拉输入上下拉输入 11保留保留 (2)MODE!=00时,作为输出模式选择时,作为输出模式选择 00推挽
2、输出推挽输出 01开漏输出开漏输出 10复用推挽输出复用推挽输出 11复用开漏输出。复用开漏输出。GPIOGPIO函数名函数名原型原型功能功能GPIO_InitGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)初始化初始化GPIOxGPIOxGPIO_ReadInputDataBitGPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,u16 GPIO_Pin)读取端口管脚的输读取端口管脚的输入入GPIO_ReadInputDataGPIO_ReadInputData(GPIO_TypeDef
3、*GPIOx)读取读取GPIOGPIO端口输入端口输入GPIO_ReadOutputDataBitGPIO_ReadOutputDataBit(GPIO_TypeDef*GPIOx,u16 GPIO_Pin)读取端口管脚的输读取端口管脚的输出出GPIO_ReadOutputDataGPIO_ReadOutputData(GPIO_TypeDef*GPIOx)读取读取GPIOGPIO端口输出端口输出GPIO_SetBitsGPIO_SetBits(GPIO_TypeDef*GPIOx,u16 GPIO_Pin)设置数据端口位设置数据端口位GPIO_ResetBitsGPIO_ResetBits(
4、GPIO_TypeDef*GPIOx,u16 GPIO_Pin)清除数据端口位清除数据端口位GPIO_WriteBitGPIO_WriteBit(GPIO_TypeDef*GPIOx,u16 GPIO_Pin,BitAction BitVal)设置或者清除数据设置或者清除数据端口位端口位GPIO_WriteGPIO_Write(GPIO_TypeDef*GPIOx,u16 PortVal)向指定向指定GPIOGPIO数据端数据端口写入数据口写入数据 一、初始化一、初始化GPIOGPIO端口端口1、用、用RCC_APB2PeriphClockCmd函数使能函数使能GPIO时钟时钟2、用、用GPI
5、O_Init函数初始化函数初始化GPIO端口端口二、读二、读GPIOGPIO端口数据端口数据1、用、用GPIO_ReadInputDataBit函数读取指定函数读取指定GPIO引脚的电平状态引脚的电平状态2、用用GPIO_ReadInputData函数读取指定函数读取指定GPIO整个端口的整个端口的16位数据位数据三、写三、写GPIOGPIO端口数据端口数据1、用、用GPIO_SetBits函数置位多个指定函数置位多个指定I/O引脚(高电平输出)引脚(高电平输出)2、用、用GPIO_ResetBits函数复位多个指定函数复位多个指定I/O引脚(低电平输出)引脚(低电平输出)3、用、用GPIO_
6、WriteBit函数写指定一个函数写指定一个I/O引脚高低电平引脚高低电平4、用、用GPIO_Write函数写指定一个完整函数写指定一个完整GPIO端口端口16位数据位数据 【例例5.1】假设假设PD2、PD3、PD4和和PD7为推挽输出作为为推挽输出作为LED发光二极管(发光二极管(LED1LED4)输出控制,输出控制,0亮,亮,1灭,灭,PD11、PD12、PC13和和PA0为上拉输入,作为为上拉输入,作为KEY1KEY4四个四个按键输入,设置各按键输入,设置各PORTA、PORTC和和PORTD工作频率为工作频率为10MHz出。并让出。并让LD1LD4全全部灭。部灭。初始化程序:初始化程
7、序:GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA RCC_APB2Periph_GPIOCRCC_APB2Periph_GPIOD,ENABLE);/*使能使能GPIOA,C,D端口时钟端口时钟*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11|GPIO_Pin_12;/*PD11/12输入输入*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;/*高阻输入高阻输入*/GPIO_Init(GPIO
8、D,&GPIO_InitStructure);/*初始化初始化GPIOD端口端口*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;GPIO_Init(GPIOC,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_7;/PD2/3/4/7入入GPIO_InitStructure.GP
9、IO_Speed=GPIO_Speed_10MHz;/*速度速度10MHz*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;/*推挽输出推挽输出*/GPIO_Init(GPIOD,&GPIO_InitStructure);/*初始化初始化GPIOD端口端口*/GPIO_SetBits(GPIOD,GPIO_Pin_2GPIO_Pin_3 GPIO_Pin_4 GPIO_Pin_7);/*PD2:LED1、PD3:LED3、PD4:LED3、PD7:LED4全为全为1灭灭*/功率:功率:PkPkC CF FU U2 2/R/R 123456ABCD6
10、54321DCBATitleNumberRevisionSizeBDate:8-Mar-2013 Sheet of File:E:嵌入式工程师考试嵌入式系统工程师考试教材用图.DDBDrawn By:R47KC20pD1D2输出输入VDDVCCVSSVCCVSSVDDVCCVSSVSS 123456ABCD654321DCBATitleNumberRevisionSizeBDate:10-Mar-2013Sheet of File:E:嵌入式工程师考试嵌入式系统工程师考试教材用图.DDBDrawn By:R110KR22KBG18050输出输入VDDVCC 123456ABCD654321DC
11、BATitleNumberRevisionSizeBDate:10-Mar-2013Sheet of File:E:嵌入式工程师考试嵌入式系统工程师考试教材用图.DDBDrawn By:光耦R1R2VCC输出输入VDD R1121K3.3VLED1REDR1131K3.3VLED2REDR1151K3.3VLED3REDR1161K3.3VLED4REDPD2PD3PD4PD7R1171K3.3VLED5REDLEDPB1312JP13 123456ABCD654321DCBATitleNumberRevisionSizeBDate:25-Aug-2015Sheet of File:F:教学高
12、等教育出版社教材嵌入式硬件书稿用图.DDBDrawn By:KEYR310KVCCC1uF12U1A74HC14GPIO嵌入式处理器KSW SPDTR15.1KR25.1KVCCAB123U1A74HC00456U1BGPIO嵌入式处理器OUT 123456ABCD654321DCBATitleNumberRevisionSizeBDate:11-Mar-2013Sheet of File:E:嵌入式工程师考试嵌入式系统工程师考试教材用图.DDBDrawn By:U1TLP521-4R210KR110KR310KVCCR410KTSC关过力矩LSC关限位LSO开限位TSO开过力矩12345RP
13、13.3K开限位关限位开过力关过力VDDPB.3PB.2PB.0PB.1MCUVCC 1234U1P817R210KR15.1KFOUTFOVDDVCCGPIO嵌入式处理器GNDVCC12JFOUT KEY0-f行线列线U1ARM 嵌入式处理器PE8PE9PE10VCCR1R2R3R40123456789abcdef第0行第3列第0列第2列第1列第1行第2行第3行PE11PE12PE13PE14PE15 R1121K3.3VLD2REDR1131K3.3VLD3REDR1151K3.3VLD4REDR1161K3.3VLD5REDLED1LED2LED3LED4PD2PD3PD4PD7T/R1
14、A02A13A24A35A46A57A68A79GND10B711B612B513B414B315B216B117B018/OE19VDD20U774HC245R37100R100R100R100R100R100R100RR44100RVCCC26104SEG1SEG2SEG3SEG4SEG5SEG6SEG7SEG8D0D1D2D3D4D5D6D7Q18550Q28550R332.2KR342.2KVCCVCCBIT1BIT2BITL1BITL2R45100KVCCLED_OEQ38550A48550R352.2KR362.2KVCCVCCBITL3BITL4-abfcgdeDPY123456
15、7abcdefg8dpdpLED1DPY_7-SEG_DPabfcgdeDPY1234567abcdefg8dpdpLED2DPY_7-SEG_DPabfcgdeDPY1234567abcdefg8dpdpLED3DPY_7-SEG_DPabfcgdeDPY1234567abcdefg8dpdpLED4DPY_7-SEG_DPGPIO1GPIO2GPIO3GPIO4GPIO5GPIO6GPIO7GPIO8GPIO9GPIO11GPIO10GPIO12GPIO13VCCVDDGND嵌入式处理器LEDGR136200R123LED72 color LEDLEDR12JP182.54-2PB1LED
16、RI12JP402.54-2PB2LEDGIR211K5V DS14SH_CP11MR10ST_CP12OE13O015O11O22O33O44O55O66O77Q79U?74HC595DS14SH_CP11MR10ST_CP12OE13O015O11O22O33O44O55O66O77Q79U174HC595DS14SH_CP11MR10ST_CP12OE13O015O11O22O33O44O55O66O77Q79U274HC595DS14SH_CP11MR10ST_CP12OE13O015O11O22O33O44O55O66O77Q79U374HC595abfcgdeDPY1234567a
17、bcdefg8dpdpLED1DPY_7-SEG_DPabfcgdeDPY1234567abcdefg8dpdpLED2DPY_7-SEG_DPabfcgdeDPY1234567abcdefg8dpdpLED4DPY_7-SEG_DPabfcgdeDPY1234567abcdefg8dpdpLED3DPY_7-SEG_DPGPIO1DATAGPIO2VDDGPIO3GND嵌入式处理器VCCVCCVCCCLKSTORE GPIO1VSSU1嵌入式处理器GPIO12VDDVDD3.3+5VR1151kBG585501234567891011121314151617181920JLCD20PIN+5
18、V/RSTC_LCDLEDALEDKNCNCERWRSDB7DB6DB5DB4DB3DB2DB1DB0NCPSB+5V128*64 LCD显示模块接口GPIO2GPIO3GPIO4GPIO5GPIO6GPIO7GPIO8GPIO9GPIO10GPIO11GPIO13VSSVDD D0D3D5D7D9D11D13D15PB14nRESTSPI3_MISOD1D2D4D6D8D10D12D14VLCDGNDLCD_WRVLCDSPI3_MOSISPI3_SCKTP_CSLCD_RDGNDSD_CSSD卡片选1234567891011121314151617181920212223242526272
19、8293031323334JLCD1IDC34 maleLCD_CSLCD_RSPC5TP_INTPC7F_CS背光可以不接PE0PE3PE5PE7PE9PE11PE13PE15PE1PE2PE4PE6PE8PE10PE12PE14PD6PD13PD15PD145V3.3VJP3【例例5.3】当下按当下按KEY1(PD11)键时,让)键时,让LED1(PD2)闪烁,当按)闪烁,当按KEY2(PD12)键时让)键时让LED2(PD3)闪烁,当按)闪烁,当按KEY3(PC13)键时让)键时让LED3(PD4)闪烁,当按)闪烁,当按KEY4(PA1)键时让)键时让LED4(PD5)闪烁,当同时按下)
20、闪烁,当同时按下KEY1和和KEY2时,四个时,四个LED发光管全亮。发光管全亮。1、字符显示函数、字符显示函数Show_Str功能:显示一个字符串(包括中英文字符)功能:显示一个字符串(包括中英文字符)原型:原型:void Show_Str(u16 x,u16 y,u16 fc,u16 bc,u8*str,u8 size,u8 mode)参数:参数:x,y:起始坐标,:起始坐标,fc:前景色,:前景色,bc:背景色,:背景色,str:待显示字符串:待显示字符串Size:字体大小:字体大小,可为可为16(16*16),24(24*24)等;等;Mode:模式:模式,mode=0为填充模式为填充
21、模式;mode=1叠加模式,此时背景不起作用。叠加模式,此时背景不起作用。示例:示例:如在如在(10,20)处显示一串字符处显示一串字符“This is my LCD test!”,背景采用蓝色,背景采用蓝色,前景字符采用白色,可如下调用该函数来实现。前景字符采用白色,可如下调用该函数来实现。Show_Str(10,20,WHITE,BLUE,This is my LCD test!,16,0);要在坐标要在坐标(50,60)开始显示汉字开始显示汉字“南京航空航天大学南京航空航天大学”,要求背景黑色,要求背景黑色,字符红色,可如下调用该函数:字符红色,可如下调用该函数:Show_Str(50,
22、60,RED,YELLOW,南京航空航天大学南京航空航天大学,16,0);如果如果font.h中没有定义的字模,可以自行利用字模生成软件生成字模。具中没有定义的字模,可以自行利用字模生成软件生成字模。具体方法:演示为准体方法:演示为准。字模生成软件的使用。字模生成软件的使用。1、设置选项、设置选项2、输入汉字、输入汉字3、生成字模、生成字模4、写入字模、写入字模5、使用字模、使用字模原型:原型:void Gui_StrCenter(u16 x,u16 y,u16 fc,u16 bc,u8*str,u8 size,u8 mode)功能:功能:居中显示一个字符串居中显示一个字符串,包含中英文显示包
23、含中英文显示输入参数:输入参数:x,y:起点坐标起点坐标 fc:前置画笔颜色前置画笔颜色 bc:背景颜色背景颜色 str:字符串字符串 size:字体大小字体大小 mode:模式,模式,0,填充模式填充模式;1,叠加模式叠加模式如:居中显示如:居中显示“欢迎您!欢迎您!”Gui_StrCenter(0,100,WHITE,RED,”欢迎您!欢迎您!”,16,0);原型:原型:void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size)功能:功能:显示单个数字变量值。显示单个数字变量值。输入参数:输入参数:x,y:起点坐标:起点坐标Len:指定显示数字
24、的位数:指定显示数字的位数Size:字体大小:字体大小num为为32位数值位数值(0232-1)。原型:原型:void LCD_DrawLine(u16 x1,u16 y1,u16 x2,u16 y2)功能:功能:GUI画线画线输入参数:输入参数:x1,y:起点坐标,起点坐标,x2,y2:为终点坐标。为终点坐标。线条的颜色在就是线条的颜色在就是POINT_COLOR中,在画线之前中,在画线之前要先给它赋值。要先给它赋值。如要从如要从(0,0)到到(50,50)画一根红色线条,可如下调用画一根红色线条,可如下调用该函数:该函数:POINT_COLOR=RED;LCD_DrawLine(0,0,5
25、0,50);原型:原型:void LCD_DrawRectangle(u16 x1,u16 y1,u16 x2,u16 y2)功能:功能:GUI画矩形画矩形(非填充非填充)输入参数:输入参数:(x1,y1),(x2,y2)为矩形的对角坐标为矩形的对角坐标框线颜色由框线颜色由POINT_COLOR决定。决定。原型:原型:void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)功能:在指定区域内填充颜色功能:在指定区域内填充颜色输入参数:输入参数:Sx:指定区域开始点指定区域开始点x坐标,坐标,sy:指定区域开始点指定区域开始点y坐标,坐标,ex:指
26、定区域结束点指定区域结束点x坐标,坐标,ey:指定区域结束点指定区域结束点y坐标,坐标,color:填充的颜色。填充的颜色。如果让屏幕把(如果让屏幕把(50,100)到()到(190,200)区域填充)区域填充红色,可如下调用:红色,可如下调用:LCD_Fill(50,100,190,200,RED);原型:原型:void gui_circle(int xc,int yc,u16 c,int r,int fill功能:功能:在指定位置画一个指定大小的圆在指定位置画一个指定大小的圆(可选择填充可选择填充)输入参数:输入参数:(xc,yc):圆中心坐标,圆中心坐标,c:填充的颜色填充的颜色r:圆半
27、径,圆半径,fill为填充判断标志,为填充判断标志,1-填充,填充,0-不填充。不填充。例如要在(例如要在(120,200)为圆心画一个直径为)为圆心画一个直径为50的圆,的圆,填充色为蓝色,可调用函数如入:填充色为蓝色,可调用函数如入:gui_circle(120,200,BLUE,50,1);原型:原型:void Gui_Drawbmp16(u16 x,u16 y,const unsigned char*p)功能:功能:显示一幅显示一幅16位位BMP图像(大小图像(大小xS*yS)输入参数:输入参数:x,y:起点坐标起点坐标,xS*yS为图像大小,为图像大小,*p为图像数组起为图像数组起始地址。始地址。