为了构建I2C的间谍,我获得了PIC32mx795f512L,我将在SDA,SCL和GND上连接3条线,然后我必须检测发送的数据。这部分还可以。现在,一旦我有数据,我必须通过RX,TX将它发送到计算机(事实上,我将它发送到适配器,将其转换为RS232),这是我的问题。
我真的不知道如何初始化这种沟通。 现在我说:
mPORTFClearBits(BIT_8);
TRISFbits.TRISF8=0; // RF8 output==>TX1
TRISFbits.TRISF2=1; // RF1 input==>RX1
U1STA = 0x1400; // Enable Tx(inv) and Rx
U1BRG = 8332; // value = (80000000 / BAUD) - 1 = 9600
U1MODE = 0x8008; // Enable UART with 1 stop bit, no parity and BRGH
OpenUART1(UART_EN | UART_BRGH_FOUR, UART_RX_ENABLE | UART_TX_ENABLE, UBRG(UART1_BAUD));
通过检查数据表,但我实际上不知道是否设置了所需的一切。 尽管如此,我还没有得到如何通过TX发送数据。 我找到了this topic 在哪里说:
要在UART上输入一些字符串输出(在本例中为a),只需编写以下代码:
if(!BusyUART1()) putsUART1("-\r\n"); "
但我找不到使用“a”的地方。
所以,请,如果有人能够帮助我,请随意这样做。
答案 0 :(得分:0)
在设置UART
通信
TRIS
中的PIC
位)我可以看到你的代码中初始化了所有这些内容,这些都是必要的。所以这是你第一个问题的答案。
对于第二个问题,我会检查UART
忙位并减号' - '随后CRLF
通过UART
Tx
答案 1 :(得分:0)
按照以下步骤设置UART传输:
初始化UxBRG寄存器以获得适当的波特率(参见21.3“UART波特率发生器”)。
通过写入PDSEL< 1:0>设置数据和停止位的数量,以及奇偶校验选择。 位(UxMODE< 2:1>)和STSEL位(UxMODE< 0>)。
执行以下步骤设置UART接收: