使用 RPOR 寄存器,我可以成功将 RB3 或 RB15 或其他引脚连接到 UART (1-4) ...但不能连接 RB6。我在文档或勘误表中没有看到任何内容表明 RB6 (RP6) 是唯一不可用的。有什么猜测吗?
这是当我将 RB3、RB6 和 RC3 全部连接到 UART0 时的 RPOR 寄存器。 RB3 和 RC3 工作正常,但 RB6 仅作为数字输出工作。
03D6 RPOR0 0x0000 0 00000000 00000000 '..'
03D8 RPOR1 0x0300 768 00000011 00000000 '..'
03DA RPOR2 0x0000 0 00000000 00000000 '..'
03DC RPOR3 0x0003 3 00000000 00000011 '..'
03DE RPOR4 0x0000 0 00000000 00000000 '..'
03E0 RPOR5 0x0000 0 00000000 00000000 '..'
03E2 RPOR6 0x0000 0 00000000 00000000 '..'
03E4 RPOR7 0x0000 0 00000000 00000000 '..'
03E6 RPOR8 0x0000 0 00000000 00000000 '..'
03E8 RPOR9 0x0300 768 00000011 00000000 '..'
03EA RPOR10 0x0000 0 00000000 00000000 '..'
03EC RPOR11 0x0700 1792 00000111 00000000 '..'
03EE RPOR12 0x0008 8 00000000 00001000 '..'
以下是 PORTB 的设置方式:
018A TRISB 0x22A2 8866 00100010 10100010 '"¢'
018C PORTB 0x00C8 200 00000000 11001000 '.È'
018E LATB 0x0040 64 00000000 01000000 '.@'
0190 ODCB 0x0000 0 00000000 00000000 '..'
0192 ANSB 0x2000 8192 00100000 00000000 '..'
...这是配置位:
_CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & ICS_PGx1 & FWDTEN_ON & WINDIS_OFF & FWPSA_PR128 & WDTPS_PS1024);
_CONFIG2(IESO_ON & WDTCMX_LPRC & FNOSC_FRC & FCKSM_CSDCMD & OSCIOFCN_ON & POSCMD_NONE)
_CONFIG3(SOSCSEL_ON)
_CONFIG4(IOL1WAY_OFF & PLLDIV_DISABLED & DSWDTPS_DSWDTPS15)
我正在尝试进入 Microchip 论坛询问这个问题,但他们的注册过程显然已停止。希望 StackOverflow 的好心人能够提供帮助。谢谢!
我联系了 Microchip 支持人员,他们在比质子衰变短得多的时间内(大约一天)给了我回复,并提供了有效的解决方案。
必须通过将 & 0xF7FF 附加到 config2 设置来清除闪存配置字 2 的位 11(保留,复位值=1),如下所示:
_CONFIG2(POSCMD_NONE & WDTCLK_FRC & OSCIOFCN_OFF & FCKSM_CSDCMD & FNOSC_FRC & ALTCMPI_CxINC_RX & WDTCMX_WDTCLK & IESO_OFF & 0xF7FF)
您将不得不忍受编译器警告“考虑迁移到#pragma config”。 #pragma 语法似乎采用文本参数,所以真的不希望您去翻转未记录的位。
我无法理解为何 RB6 上的外设输出被未记录的(Microchip 外部)位禁用。
我无法理解为什么 Microchip(或设计演示板的人)选择使用 RB6 作为 mikroBUS™ 接口的 TX。