PIC单片机的管脚复用设置问题

2020-02-07 09:34发布

不知道坛子里的同志们有没有在用PIC18F24K22单片机的,妹纸我最近遇到一个奇怪的问题,具体描述如下。
大家都知道PIC18F24K22单片机的有的管脚会有复用,复用的功能多了,就会有一个功能使用优先级的问题,比如我举个例子:PIC18F24K22单片机的PORTB5口,如果我要使用它的GPIO的功能,同时设置为输出高电平,但是在此同时,会有CCP3、P3A和P2B的功能,并且GPIO的优先级是最低的,所以我现在设置TRISBbits.RB5 = 0; ANSELBbits.ANSB5 = 0; LATBbits.LATB5 = 1; 这个时候不会从PORTB5输出高电平,原因是高优先级的CCP3功能占用,所以设置了CONFIG3H,设置相应的配置字,但是还是输出不了高电平,求解释?我的设置有遗漏的地方吗?小女子先谢过大家了!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
Lu.Shi
2020-02-07 16:32
本帖最后由 Lu.Shi 于 2014-2-24 09:13 编辑
gaolf_2012 发表于 2014-2-21 22:16
配置位:P2BMX:T3CMX:CCP3MX:PBADEN和这个脚都有关系,你挑这个脚说事难道真的跟microchip有仇吗 ...


谢谢你的回复,还有我没有和Microchip有什么仇 ,我遇到的问题就像上面的描述的,对TRISB5、ANSELB5以及LATB5都设置了,你上面说的P2BMX:T3CMX:CCP3MX:PBADEN这几个配置位都在CONFIG3H配置字里,我都按照datasheet的说明配置了,可是还是没有输出高电平,感觉是输出了高电平立马又被置低了,找不到原因,所以才在坛子里求助的,看看我是不是遗漏什么配置或设置的地方。
具体的配置如下:
#pragma config CCP2MX = PORTC1  // CCP2 MUX bit (CCP2 input/output is multiplexed with RC1)
#pragma config PBADEN = OFF      // PORTB A/D Enable bit (PORTB<5:0> pins are configured as analog input channels on Reset)
#pragma config CCP3MX = PORTC6  // P3A/CCP3 Mux bit (P3A/CCP3 input/output is multiplexed with RB5)
#pragma config HFOFST = ON      // HFINTOSC Fast Start-up (HFINTOSC output and ready status are not delayed by the oscillator stable status)
#pragma config T3CMX = PORTB5   // Timer3 Clock input mux bit (T3CKI is on RC0),这个当TRISB5是高电平,ANSELB5低电平使能,所以和配置成GIO模式不冲突
#pragma config P2BMX = PORTC0   // ECCP2 B output mux bit (P2B is on RD2)
#pragma config MCLRE = EXTMCLR  // MCLR Pin Enable bit (MCLR pin enabled, RE3 input pin disabled)
然后在主程序里面我就是让PORTB5输出高电平,但是软仿的时候明显知道数值有变动,只不过变成了高电平,立马又拉低成了低电平。。。。

一周热门 更多>