Receber dados pela serial
Página 1 de 1
Receber dados pela serial
Olá amigos!
Possuo o kit PICminas. A dias estou tentando enviar e receber dados pela seria. Utilizo esse programa ROGERCOM para testar.
Já fiz o circuito com max232 tudo certinho. já consegui enviar um caractere pela seria e aparecer no programa, mas até agora não consegui receber. segue abaixo o código:
/******************************************************************************
*
* PICMINAS PROJETOS (PIC18F4550)
*
******************************************************************************
* Nome do Arquivo: main.c
* Dependencias: Veja a seção INCLUDES abaixo
* Processador: PIC18F4550
* Opção de Clock: HS 20MHz (externo)
* Compilador: C18 v3.20 ou superior
* Empresa: PICMINAS
* Prática:
* Descrição:
*
*****************************************************************************/
/** I N C L U D E S **********************************************************/
#include <p18cxxx.h> // Necessário para que o compilador adicione a biblioteca
// com as definições do PIC selecionado no projeto, neste
// caso, o modelo 18F4550.
#include <usart.h>
#define CH1 PORTEbits.RE2
#define L LATCbits.LATC2
/** V A R I A V E I S G L O B A I S ****************************************/
/** P R O T O T I P O S P R I V A D O S ***********************************/
void ConfiguraSistema(void);
void HighPriorityISRCode();
void LowPriorityISRCode();
/** F U N C O E S ************************************************************/
/******************************************************************************
* Funcao: void main(void)
* Entrada: Nenhuma (void)
* Saída: Nenhuma (void)
* Descrição: Função principal do programa.
*****************************************************************************/
void main(void)
{
char a='A';
char b='c';
ConfiguraSistema(); // Configura as portas e periféricos do PIC.
TRISEbits.TRISE2=1;
TRISCbits.TRISC2=0;
while(1) // Laço infinito que executa o funcionamento principal do projeto.
{
if(!BusyUSART())
{
if(CH1){
WriteUSART(a);
}
if(DataRdyUSART( )){ // verificar se chegou um dado novo
b= ReadUSART(); //lê o valor via serial
if(b=='s'){
L=1;// acende o LED verde
}
}
}
}//end while(1)
}//end main
/******************************************************************************
* Funcao: void ConfiguraSistema(void)
*****************************************************************************/
void ConfiguraSistema(void)
{
// Configura LED's do KitPICMinas: saida digital
ADCON1 |= 0x0F; // configura todas as portas como digitais
OpenUSART(
USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_SINGLE_RX &
USART_BRGH_HIGH &
USART_ADDEN_OFF
,
155
);
// TRISCbits.TRISC2=0; // RC0: saida digital - LED_VERDE
}//end ConfiguraSistema
/** V E C T O R R E M A P P I N G ******************************************/
// Rotina necessária para o compilador C18 saber onde é o início do vetor de
// "reset".
// Copiar na íntegra esta parte do código dentro do arquivo "main.c" de TODO
// projeto usado com o Bootloader no PIC.
extern void _startup (void); // See c018i.c in your C18 compiler dir
#pragma code REMAPPED_RESET_VECTOR = 0x1000
void _reset (void)
{
_asm goto _startup _endasm
}
/** EOF main.c ***************************************************************/
Possuo o kit PICminas. A dias estou tentando enviar e receber dados pela seria. Utilizo esse programa ROGERCOM para testar.
Já fiz o circuito com max232 tudo certinho. já consegui enviar um caractere pela seria e aparecer no programa, mas até agora não consegui receber. segue abaixo o código:
/******************************************************************************
*
* PICMINAS PROJETOS (PIC18F4550)
*
******************************************************************************
* Nome do Arquivo: main.c
* Dependencias: Veja a seção INCLUDES abaixo
* Processador: PIC18F4550
* Opção de Clock: HS 20MHz (externo)
* Compilador: C18 v3.20 ou superior
* Empresa: PICMINAS
* Prática:
* Descrição:
*
*****************************************************************************/
/** I N C L U D E S **********************************************************/
#include <p18cxxx.h> // Necessário para que o compilador adicione a biblioteca
// com as definições do PIC selecionado no projeto, neste
// caso, o modelo 18F4550.
#include <usart.h>
#define CH1 PORTEbits.RE2
#define L LATCbits.LATC2
/** V A R I A V E I S G L O B A I S ****************************************/
/** P R O T O T I P O S P R I V A D O S ***********************************/
void ConfiguraSistema(void);
void HighPriorityISRCode();
void LowPriorityISRCode();
/** F U N C O E S ************************************************************/
/******************************************************************************
* Funcao: void main(void)
* Entrada: Nenhuma (void)
* Saída: Nenhuma (void)
* Descrição: Função principal do programa.
*****************************************************************************/
void main(void)
{
char a='A';
char b='c';
ConfiguraSistema(); // Configura as portas e periféricos do PIC.
TRISEbits.TRISE2=1;
TRISCbits.TRISC2=0;
while(1) // Laço infinito que executa o funcionamento principal do projeto.
{
if(!BusyUSART())
{
if(CH1){
WriteUSART(a);
}
if(DataRdyUSART( )){ // verificar se chegou um dado novo
b= ReadUSART(); //lê o valor via serial
if(b=='s'){
L=1;// acende o LED verde
}
}
}
}//end while(1)
}//end main
/******************************************************************************
* Funcao: void ConfiguraSistema(void)
*****************************************************************************/
void ConfiguraSistema(void)
{
// Configura LED's do KitPICMinas: saida digital
ADCON1 |= 0x0F; // configura todas as portas como digitais
OpenUSART(
USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_SINGLE_RX &
USART_BRGH_HIGH &
USART_ADDEN_OFF
,
155
);
// TRISCbits.TRISC2=0; // RC0: saida digital - LED_VERDE
}//end ConfiguraSistema
/** V E C T O R R E M A P P I N G ******************************************/
// Rotina necessária para o compilador C18 saber onde é o início do vetor de
// "reset".
// Copiar na íntegra esta parte do código dentro do arquivo "main.c" de TODO
// projeto usado com o Bootloader no PIC.
extern void _startup (void); // See c018i.c in your C18 compiler dir
#pragma code REMAPPED_RESET_VECTOR = 0x1000
void _reset (void)
{
_asm goto _startup _endasm
}
/** EOF main.c ***************************************************************/
wellingtonfreitas- Mensagens : 1
Data de inscrição : 04/05/2012
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos