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的意思。
void PLIB_PORTS_PinSet(
PORTS_MODULE_ID index,
PORTS_CHANNEL channel,
PORTS_BIT_POS bitPos
功能描述:将相应的IO端口位置1
搞不懂的microchip把这些底层的程序,都屏蔽掉了,看不到具体的程序的内容。
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 ;
打开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
----------------------------------------------
文章评论(0条评论)
登录后参与讨论