热度 6
2014-4-1 23:21
2615 次阅读|
0 个评论
PIC32 入门学习 之IO口输出操作 学习的目的 使用PIC32MX795L单片机IO口引脚输出高电平点亮四个LED灯。 电路图如下 其中LED2 LED3用到的IO是TMS/RA0 TCK/RA1与JTAG的引脚相同。在PIC32启动的时候是默认启动JTAG的。所以在使用TMS/RA0 TCK/RA1端口的时候,先要把JTAG功能禁止。我使用的是PICKit3。 需要使用到的函数 void PLIB_PORTS_PinDirectionOutputSet( PORTS_MODULE_ID index, PORTS_CHANNEL channel, PORTS_BIT_POS bitPos 这个函数设置IO为输出模式 : 这个我不知道是起到什么作用的,可以参考下 Identifier for the device instance to be configured的意思。 :选择相应的port端口 :选择相应的PIN引脚。 void PLIB_PORTS_PinSet( PORTS_MODULE_ID index, PORTS_CHANNEL channel, PORTS_BIT_POS bitPos 功能描述:将相应的IO端口位置1 :同上 :同上 :同上 搞不懂的microchip把这些底层的程序,都屏蔽掉了,看不到具体的程序的内容。 学习PIC32需要看的一些资料 由于这些资料不好一一上传,需要的可以通过下面加入QQ群,向我索要,希望你的加入。 IO Ports(第12章)_61120E 配置_32 振荡器的配置(第六章)_61112H 系列数据手册 对于IO口的操作Help_harmony_v0_70_01b只需要看5.6.17Ports Peripheral Library 这一章就可以了。 这些相应的资料我会通过附件上传。 配置位的学习 5.1配置位的程序如下 // Enable the below section if you are using PIC32MZ devices #pragma config FSRSSEL = PRIORITY_0 // SRS Select (SRS Priority 0) #pragma config FMIIEN = OFF // Ethernet RMII/MII Enable (RMII Enabled) #pragma config FETHIO = ON // Ethernet I/O Pin Select (Default Ethernet I/O) #pragma config FCANIO = ON // CAN I/O Pin Select (Default CAN I/O) #pragma config FUSBIDIO = OFF // USB USID Selection (Controlled by Port Function) #pragma config FVBUSONIO = OFF // USB VBUS ON Selection (Controlled by Port Function) // DEVCFG2 #pragma config FPLLIDIV = DIV_2 //3 System PLL Input Divider (1x Divider) #pragma config FPLLMUL = MUL_15 // PLL Multiplier (24x Multiplier) ? #pragma config UPLLIDIV = DIV_12 // USB PLL Input Divider (12x Divider) ? #pragma config UPLLEN = OFF // USB PLL Enable (USB PLL is enabled) #pragma config FPLLODIV = DIV_2 //DIV_2 // DEVCFG1 #pragma config FNOSC = PRIPLL // Oscillator Selection Bits (Primary Osc w/PLL (XT+,HS+,EC+PLL)) ? #pragma config FSOSCEN = OFF // Secondary Oscillator Enable (Disable SOSC) #pragma config IESO = OFF // Internal/External Switch Over (Disabled) #pragma config POSCMOD = HS // Primary Oscillator Configuration (Primary osc enabled) #pragma config OSCIOFNC = OFF // CLKO Output Signal Active on the OSCO Pin (Disabled) #pragma config FPBDIV = DIV_1 // Peripheral Clock Divisor (Pb_Clk is Sys_Clk/1) ? #pragma config FCKSM = CSDCMD // Clock Switching and Monitor Selection (Clock Switch Enabled, FSCM Enabled) #pragma config WDTPS = PS1048576 // Watchdog Timer Postscaler (1:1048576) #pragma config FWDTEN = OFF // Watchdog Timer Enable (WDT Disabled) // DEVCFG0 #pragma config ICESEL = ICS_PGx1 //#pragma config JTAGEN = OFF #pragma config DEBUG = OFF #pragma config PWP = OFF // Program Flash Write Protect (Disable) #pragma config BWP = OFF // Boot Flash Write Protect bit (Protection Disabled) #pragma config CP = OFF //End of configuration bits settings 5.2配置位的分析 配置位是直接用MPLAB X IDE直接配置生成的。具体配置具体的内容参考 PIC32MX5XX_6XX_7XX系列数据手册的28.1 配置位章节。 程序分析 口的初始化 LED_GPIO_init() ; 这个函数主要是把LED用到的IO口设置为输出。PIC32设置为输出,默认是输出高电平的。 需要注意一点的是 DDPCON = 0x00 ; 禁止JTAG的引脚要把JTAG的功能给屏蔽掉,不然就不能操作IO口了,这个问题整了我一天。最后发现,在PIC32启动的时候,默认的是JTAG功能是打开的。 打开led灯 就可以了。 具体的打开关闭LED程序如下。在led.h文件中。 #define ON 1 #define OFF 0 #define LED1(a) if (a) \ PLIB_PORTS_PinSet(LED_PORTS_INSTANCE,LED1_CHANEL,LED1_PINNUM) ;\ else \ PLIB_PORTS_PinClear(LED_PORTS_INSTANCE,LED1_CHANEL,LED1_PINNU) #define LED2(a) if (a) \ PLIB_PORTS_PinSet(LED_PORTS_INSTANCE,LED2_CHANEL,LED2_PINNUM) ;\ else \ PLIB_PORTS_PinClear(LED_PORTS_INSTANCE,LED2_CHANEL,LED2_PINNUM) #define LED3(a) if (a) \ PLIB_PORTS_PinSet(LED_PORTS_INSTANCE,LED3_CHANEL,LED3_PINNUM);\ else \ PLIB_PORTS_PinClear(LED_PORTS_INSTANCE,LED3_CHANEL,LED3_PINNUM) #define LED4(a) if (a) \ PLIB_PORTS_PinSet(LED_PORTS_INSTANCE,LED4_CHANEL,LED4_PINNUM);\ else \ PLIB_PORTS_PinClear(LED_PORTS_INSTANCE,LED4_CHANEL,LED4_PINNUM) 大家还有什么意见,请具体的提出,好让这个资料变得更详细,帮助更多的人。 有需要使用到相应的元件,需要样品,需要技术支持,需要合适的技术解决方案,需要PIC32开发板的,请使用下面的联系方式咨询我们。 位元电子(上海)有限公司2004年成立于上海,为大陆地区客户提供专业的解决方案,取得多家知名元器件在中国地区的授权代理。公司主要代理产品有:Microchip全系列产品、Bourns精密电位器、自恢覆保险丝及保护器件、Niko-Sem半导体、华豫宁读卡器模块等。公司在上海、深圳、北京、厦门、温州、珠海、东莞、南京、苏州、重庆、成都、武汉、杭州等地区均设有分公司及办事处。 公司销售代表搭专业应用工程师团队,基于客户立场考虑市场面及技术面为客户提高最佳解决方案,降低成本,提升竞争力,尤其在汽车电子、计算机外设、电机控制,健身器材等诸多领域成功地为百来家客户,提供了完整的解决方案和技术支持,深得客户信赖与好评。 本公司主要代理有以下产品线 Microchip 8-bit/16-bit/32-bit MCU, EEPROM.Analog,HCS200/300 BOURNS TBU,Trimpot,Multifuse, TISP,GDT,ESD Protection Neoway(有方) GPRS,GPS,CDMA2000, WCDMA,WiFi,Zigbee Leadtrend(通嘉科技) AC-DC/DC-DC Products PERICOM Cystals.Oscillators. Interface Logic.Pcie Switch Bridge. Redriver signal Switch.Video Decoder NIKO-SEM LDO,MOSFET,PWMIC Byron.huang --------------------------------------------- 位元电子(上海)有限公司南京办事处 ADD:南京秦淮去洪武路359号福鑫大厦2712东 Tel:+86-25-86895711 Fax:+86-25-86895712 QQ群: 115728830 E-mail:byron.huang@a-bit.com.cn HTTP://www.a-bit.com.cn ----------------------------------------------