ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
415644
vesago (07.06.2013 12:37, просмотров: 19419)
Помогите разобраться с приемом данных уарт PIC18F14K50. Передается со свистом, а не принимается. Стоит адм485. Направление правильно выбрано. По крайне на ножке приема данные имеются. В майне есть строчка 
      if(RCIF != 0)
      {
        System_Led_ON();
      }
По идее если данные принимаются, то светодиод запаливается. Вот инициализация уарта
#define USART0_DDR          TRISB
#define USART0_PORT         LATB
#define USART0_PIN          PORTB
#define RXD0                5
#define TXD0                7

#define RS485_DDR           TRISB
#define RS485_PORT          LATB
#define RS485_PIN           PORTB
#define GL_BUS_DIR          6
#define Global_Bus_RS485_Dir_RX() {RS485_PORT &= ~(1<<GL_BUS_DIR);}
#define Global_Bus_RS485_Dir_TX() {RS485_PORT |= (1<<GL_BUS_DIR);}

void USART0_Open(unsigned long baud)
{
  RS485_PORT &= ~(1<<GL_BUS_DIR);
  RS485_DDR &= ~(1<<GL_BUS_DIR);

  USART0_DDR |= (1<<RXD0);
  USART0_DDR &= ~(1<<TXD0);

  BAUDCON = 0;
  //BRG16 = 1;
  SPBRG = (u16_t)((XTAL/(64UL * baud)) - 1);

  TXSTA = 0;
  CSRC = 1;
  SYNC = 0;
  TXEN = 1;

  RCSTA = 0;
  //DTRXP = 1;
  RCIP = 1;
  RCIE = 1;
  CREN = 1;

  SPEN = 1;

  //TXSTA = 0b00100000;  // Async, 8 bit and Enable Transmit (TXEN=1)
  //RCSTA = 0b10010000;  // Serial Port Enable, Async,8-bit and Enable Receipt (CREN=1)
  //BAUDCON=0x00;

  USART0_Rx_Buf_Clr();
  USART0_Tx_Buf_Clr();
}
Что ему еще надо?