图片是710的P2.12,P2.13,P2.14,P2.15接245的图,配置输出GPIO_Config(GPIO2, 0xF000, GPIO_OUT_PP); 我采用定时中断程序,使它们同时交替输出高低电平,程序如下: void T1TIMI_IRQHandler(void) { static vu8 i; if ( TIM_FlagStatus(TIM1, TIM_OCFA) ) { TIM_FlagClear(TIM1, TIM_OCFA); TIM_AddOCMPCounterValue(TIM1, 9375); i++; if(i==30) {
//GPIO_BitWrite(GPIO2,14,1); GPIO_BitWrite(GPIO2,15,1); //IO_BitWrite(GPIO2,12,1); GPIO_BitWrite(GPIO2,13,1); } if(i==60) { i=0; //GPIO_BitWrite(GPIO2,14,0); GPIO_BitWrite(GPIO2,15,0); //IO_BitWrite(GPIO2,12,0); GPIO_BitWrite(GPIO2,13,0); } } }
情况是这样,单独操作这几个IO中的任何一个,都工作正常,同时操作两个及以上,如程序所示,都不好使。 图上245的6,7,8,9脚输出,当操作两个以上脚同时输出时,只有一个脚正常工作,其余的脚保持高电平或低电平不变。我这个上面我测的规律是,当同时操作两个以上时,数字最大的那个脚正常输出,我这几个脚都输出时,6,7,8脚保持以前的电平不变,也就是这么操作没有动作,9脚正常。 如果把那些位操作函数改成字节操作的也是正常输出,就是这个位操作函数用起来不行,是哪里用的不对? 请指点一二,谢谢! |