pic32的io端口复用比较多,gpio操作的难点在于设置好相关寄存器,把带有模拟信号的端口设置为数字TTL 0 1信号的端口。
这里面需要设置的东西比较多,现在附上一个范例,经验证通过测试。
//gpio模拟spi
void spi3_init()
{
//set pins
//TRISBSET &= (1<<2);
CM2CON = 0;//模拟比较器关闭
ODCB &= 0xFFF0;//RB0~3设置为正常双向口
AD1PCFG |= 0x000F;//AN0~3设置为数字
LATB |= 0x00F;//LATB低四位送1,其他不变
TRISBCLR |= (1 << 0)|(1 << 1)|(0 << 2)|(1 << 3); //RB2 as input,others as output
SPI3_SELECT();
}
详细设置请参考pic family的datasheet