Распечатать сообщение через EUSART PIC18F45K80 - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь отправить сообщение в последовательный порт Docklight, но все время получаю ноль. Я использую PIC18F45K80 с XC8 MPLAB X. Все кажется правильным в моем коде, но я предполагаю, что я не прав. Как я могу это исправить?

#include <xc.h>
#include "PIC.h"

// INITIAL PIN SETUP

void PIN_MANAGER_Initialize(void)
{
    /**
    LATx registers
    */
    LATE = 0x00;
    LATD = 0x00;
    LATA = 0x00;
    LATB = 0x00;
    LATC = 0x00;

    /**
    TRISx registers
    */
    TRISE = 0x07;
    TRISA = 0x08;
    TRISB = 0x01;
    TRISC = 0b00010000;
    TRISD = 0xEF;

    PORTC = 0b00010010 ;

    /**
    ANSELx registers
    */
    ANCON0 = 0x00;
    ANCON1 = 0x00;

    /**
    WPUx registers
    */
    WPUB = 0x00;
    INTCON2bits.nRBPU = 1; 

}

// INITIAL SETUP SPI

void SPI_Initialize(void)
{

    // SMP Middle; CKE Idle to Active; 
    SSPSTAT = 0x00;

    // SSPEN enabled; WCOL no_collision; CKP Idle:High, Active:Low; SSPM FOSC/4; SSPOV no_overflow; 
    SSPCON1 = 0x30;

    // SSPADD 0; 
    SSPADD = 0x00;
}

// INITIAL SETUP EUSART

void EUSART_Initialize(void)
{

    // ABDOVF no_overflow; TXCKP async_noninverted_sync_fallingedge; BRG16 16bit_generator; WUE disabled; ABDEN disabled; RXDTP not_inverted; 
    BAUDCON1 = 0x08;

    // SPEN enabled; RX9 8-bit; RX9D 0; CREN disabled; ADDEN disabled; SREN disabled; 
    RCSTA1 = 0x80;

    // TX9 8-bit; TX9D 0; SENDB sync_break_complete; TXEN enabled; SYNC asynchronous; BRGH hi_speed; CSRC master_mode; 
    TXSTA1 = 0xA4;

    // 
    SPBRG1 = 0x19;

    // 
    SPBRGH1 = 0x00;
}

void SYSTEM_Initialize(void)
{
    PIN_MANAGER_Initialize();
    SPI_Initialize();
    EUSART_Initialize();
}

void main(void)
{
    int i;
    unsigned char data[] = "HELLO";

    {
        SYSTEM_Initialize();
        while (1)
        {
            for (i=0 ; i < 5; i++)
            {
                while(TXIF == 0);
                TXREG = data[i];
            }
            __delay_ms(25);
        }    
    }
}

Я бы хотел получить серийный номер через контакт

#define RSOUT PORTBbits.RB5
#define RSTEST TRISBbits.TRISB5 = 0

так как я не хочу, чтобы Rx был подключен.

...