您好!
我正在尝试使用 UART 的 SIR 功能从 PC5发送8位数据、并通过 PC4接收相同的数据。 引脚 PC5与红外发射器相连、引脚 PC4与光电晶体管相连。 我已成功使用 IR 无线发送和接收数据。 但是、接收到的数据无法在 UART 接收缓冲区中捕获。 所连接的是我在 PC4和 PC5上捕获的 IR 信号、以证明该信号已成功传输。 我还附上了我的代码供参考。 希望在这个论坛上听取专家的一些建议。 谢谢。
#include
#include
#include "sysctl.h"
#include "clock.h"
#include "gpio.h"
#include "UART.h"
char rxData = 0x00;
int j;
空 uartHandler()
{
UARTIntClear (UART7_BASE、UART_INT_RX);
//IF (UARTIntStatus (UART7_BASE、TRUE)& UART_INT_RX)
//{
rxData = UARTCharGetNonBlocking (UART7_BASE);
for (j=0;j<7000000;j++);
//}
}
int main (空)
{
int i;
int32_t ui32SysClock;
ui32SysClock = ClockFquencySet (120000000);
SysCtlPeripheralEnable (SYSCTL_Periph_UART7);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOC);
while (!SysCtlPeripheralReady (SYSCTL_Periph_UART7));
while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOC));
GPIOPinConfigure (GPIO_PC5_U7TX);
GPIOPinConfigure (GPIO_PC4_U7RX);
GPIOPinTypeUART (GPIO_PORTC_AHB_BASE、GPIO_PIN_5);//Tx
GPIOPinTypeUART (GPIO_PORTC_AHB_BASE、GPIO_PIN_4);//Rx
UARTEnableSIR (UART7_BASE、0);
//UARTDisableSIR (UART7_BASE);
UARTConfigSetExpClk (UART7_BASE、ui32SysClock、2400、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
UARTFIFODisable (UART7_BASE);
UARTIntRegister (UART7_BASE、uartHandler);
UARTIntEnable (UART7_BASE、UART_INT_RX);
while (1)
{
UARTCharPut (UART7_BASE、0x21);
while (UARTBusy (UART7_BASE));
for (i=0;i<7000000;i++);
rxData = UARTCharGetNonBlocking (UART7_BASE);
for (j=0;j<7000000;j++);
}
}
