PIC32MX 无法更改 select TRIS 位
PIC32MX cannot change select TRIS bits
希望这里有合适的论坛。
首先:
处理器: PIC32MX795F512L(在 chipKIT mx32 开发板上)
IDE: MPLAB X IDE v2.26
Pogrammer/Debugger: PicKIT 3
我正在尝试将一些 PORT 引脚设置为输出,这样我就可以将通信协议位转换为另一个设备。然而,当我 运行 PIC 使用 pickit 3 作为调试器时,我发现一些 TRIS 位不会切换到 0。
到目前为止,这是我在使用 TRISF 和 TRISG 时遇到的问题,我在其他帖子中看到过一些提及,但没有解决方案。
我尝试切换的引脚是:
- TRISF4 (SDA3A/SDI3A/U3ARX/PMA9/CN17/RF4)
- TRISG3 (D-/RG3)
- TRISG2 (D+/RG2)
这是我如何做的一个例子。
ODCDCLR = 0xFFFF;
ODCFCLR = 0xFFFF;
TRISDCLR = 3<<14;
TRISFCLR = 3<<5;
粘性 TRIS 位可能是什么原因造成的?
两个主要原因是一个引脚配置为模拟,一个引脚配置为其他功能,如 JTAG。
对于 F 和 G,您可以设置 ANSELF = 0
和 ANSELG = 0
。对于 JTAG,您需要检查数据 sheet,然后设置适当的配置位。
我还没有检查过您的特定设备的数据 sheet,所以我无法确定。
更新:
请参阅罗杰罗兰的回答。无可替代读取数据 sheet!
如果您查看 page 36 of the datasheet,您会发现 G2 和 G3 在用作数字 I/O 而不是 USB 时仅作为输入。摘录如下:
同样,如果您启用了 UART3,RF4 将是一个 RX 输入。
您需要确保 enable/disable 外围设备共享这些引脚并非常 仔细阅读数据表。有时它是一个完整的 PITA,但我从未发现数据表有误 - 只是有时事情隐藏得很好!
希望这里有合适的论坛。
首先:
处理器: PIC32MX795F512L(在 chipKIT mx32 开发板上)
IDE: MPLAB X IDE v2.26
Pogrammer/Debugger: PicKIT 3
我正在尝试将一些 PORT 引脚设置为输出,这样我就可以将通信协议位转换为另一个设备。然而,当我 运行 PIC 使用 pickit 3 作为调试器时,我发现一些 TRIS 位不会切换到 0。
到目前为止,这是我在使用 TRISF 和 TRISG 时遇到的问题,我在其他帖子中看到过一些提及,但没有解决方案。
我尝试切换的引脚是:
- TRISF4 (SDA3A/SDI3A/U3ARX/PMA9/CN17/RF4)
- TRISG3 (D-/RG3)
- TRISG2 (D+/RG2)
这是我如何做的一个例子。
ODCDCLR = 0xFFFF;
ODCFCLR = 0xFFFF;
TRISDCLR = 3<<14;
TRISFCLR = 3<<5;
粘性 TRIS 位可能是什么原因造成的?
两个主要原因是一个引脚配置为模拟,一个引脚配置为其他功能,如 JTAG。
对于 F 和 G,您可以设置 ANSELF = 0
和 ANSELG = 0
。对于 JTAG,您需要检查数据 sheet,然后设置适当的配置位。
我还没有检查过您的特定设备的数据 sheet,所以我无法确定。
更新:
请参阅罗杰罗兰的回答。无可替代读取数据 sheet!
如果您查看 page 36 of the datasheet,您会发现 G2 和 G3 在用作数字 I/O 而不是 USB 时仅作为输入。摘录如下:
同样,如果您启用了 UART3,RF4 将是一个 RX 输入。
您需要确保 enable/disable 外围设备共享这些引脚并非常 仔细阅读数据表。有时它是一个完整的 PITA,但我从未发现数据表有误 - 只是有时事情隐藏得很好!