Вы определяете переменную приема UART (uart_rd
) как int
, которая является 2-байтовой переменной.Я ожидаю, что UART1_read()
вернет один байт (char
).
Я не знаком с вашими конкретными настройками или параметрами отладки / устранения неполадок, но вы можете попробовать написать некоторый код, чтобы помочь в отладке вашей проблемы.,Следующий пример может быть полезным.Предполагается, что светодиоды подключены как к порту 1, так и к порту 2, поэтому может потребоваться некоторая настройка.
char uart_rd;
void main()
{
UART1_Init(9600); // Initialize UART at 9600 bps
delay_ms(100); // Wait for UART to stabilize
while(1)
{
if(UART1_Data_Ready())
{
P2 = 0xFF; // Turn ON PORT2 LEDs upon data ready
uart_rd = UART1_read(); // Receive data
P1 = uart_rd; // Display data on port 1 LEDs
UART1_write(uart_rd); // Transmit same data back
delay_ms(1500); // Brief delay
P1 = 0x00; // Turn OFF port 1 LEDs
P2 = 0x00; // Turn OFF port 2 LEDs
}
}
}