PIC32MX无法更改选择TRIS位

时间:2015-03-18 00:50:19

标签: microcontroller pic microchip

希望我在这里有正确的论坛。

首先:

处理器: PIC32MX795F512L(在chipKIT mx32开发板上)

IDE: MPLAB X IDE v2.26

Pogrammer / Debugger: PicKIT 3

我正在尝试将一些PORT引脚设置为输出,这样我就可以将通信协议发送到另一个设备。但是,当我使用pickit 3作为调试器运行PIC时,我发现一些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位可能是什么原因?

2 个答案:

答案 0 :(得分:3)

如果你看page 36 of the datasheet,你会看到G2和G3只用作数字I / O而不是USB。摘录如下:

pins

同样,如果启用了UART3,RF4将成为RX输入。

您需要确保启用/禁用共享这些引脚的外设并仔细阅读数据表 very 。它有时候是一个完整的PITA,但是我从来没有发现数据表出错 - 只是有时候事情被隐藏了!

答案 1 :(得分:0)

两个主要原因是配置为模拟的引脚和配置为其他功能的引脚,如JTAG。

对于F和G,您需要设置ANSELF = 0ANSELG = 0。对于JTAG,您需要检查数据表,然后设置适当的配置位。

我没有检查您的特定设备的数据表,所以我无法确定。

更新

见Roger Rowland的回答。无法替代阅读数据表!