Я прикрепил свой код ниже (кстати, я мигаю светодиодом, чтобы увидеть, что происходит цикл).
Я не получаю никаких данных, отправленных через UART, у меня есть Pic 16F913, и я пытаюсь получить вывод 17, я подключил его к модулю bluetooth RF-42N, я знаю, что модуль работает, потому что, если я подключу rx к tx, я получу эхо. Затем я попробовал следующую настройку, чтобы отправить букву «z» в модуль Bluetooth (и, надеюсь, прочитать на моем телефоне, используя blueterm). Я не получаю данных, я не знаю, какое значение FOSC установлено по умолчанию, поэтому я пробовал разные значения для SPBRG, надеясь, что смогу «угадать» правильное, но ни одно из них, похоже, не помогло. работай.
Я использую компилятор Hi-Tech C (бесплатная версия).
Я надеюсь, что этой информации достаточно для всех, я просто понятия не имею, чего мне не хватает, я боролся с этим часами.
// Основной файл
#include <uart.h>
__CONFIG(INTIO & WDTDIS & PWRTEN & MCLRDIS & UNPROTECT & UNPROTECT & BORDIS & IESODIS & FCMDIS);
int i, j;
void wait(int z);
int main()
{
PORTA = 0x0;
CMCON0 = 7;
// Turn off Comparators
ANSEL = 0;
// Turn off ADC
// Trisa4/5 0's mean output, 1's mean input
TRISA4 = 0;
// Make RA4/RA5 Outputs
TRISA5 = 0;
setupAsyncUart();
while (1==1)
{
RA4 = 0;
send('Z');
wait(100);
RA4 = 1;
wait(100);
}
}
// Wait routine.
void wait(int z)
{
for (int a=0; a<z; a++)
{
for (int b=0; b<z; b++)
{
}
}
}
// uart.h
void send(char string)
{
TXREG = string;
}
void setupAsyncUart(int BAUDRATE)
{
SPBRG = 10;
BRGH = 1; //Low speed = 0 high speed = 1
SYNC = 0;
SPEN = 1;
TXEN = 1;
}