root/branch/Guer/sp4c12/UART_Project/UART_Project/UART_Project.c @ 876
| 691 | yoguer | #include "sfr32c87.h"
|
|
void uart0_init(void);
|
|||
void uart0_tx(char c);
|
|||
| 820 | yoguer | char uart0_rx(void);
|
|
int rectrame (char *pBuffer);
|
|||
| 691 | yoguer | ||
| 674 | yoguer | void main(void)
|
|
| 691 | yoguer | {
|
|
| 820 | yoguer | char c,Buffer[200],nb_cara=0,i;
|
|
| 691 | yoguer | uart0_init();
|
|
| 820 | yoguer | ||
| 691 | yoguer | ||
while(1)
|
|||
{
|
|||
| 820 | yoguer | //uart0_tx('A');
|
|
//c=uart0_rx();
|
|||
nb_cara=rectrame(&Buffer[0]);
|
|||
for(i=0;i<nb_cara;i++)
|
|||
{
|
|||
uart0_tx(Buffer[i]);
|
|||
}
|
|||
| 691 | yoguer | uart0_tx('A');
|
|
}
|
|||
}
|
|||
| 820 | yoguer | //*****************************************************************
|
|
| 691 | yoguer | ||
void uart0_init(void)
|
|||
| 820 | yoguer | {
|
|
| 691 | yoguer | u0mr=0x05;
|
|
| 820 | yoguer | u0c0=0x11; //transmet sur front descendant, recoit sur montant, MSB first
|
|
u0brg=32; //4800 Baud avec fj=f8, 20Mhz/8
|
|||
u0c1=0x05; //
|
|||
| 674 | yoguer | ||
| 691 | yoguer | pd6_2=0; //on touche pas ? au autre broche de p6 sinon bug (uart1)
|
|
pd6_3=1;
|
|||
| 820 | yoguer | psl0=0x00;
|
|
| 691 | yoguer | ps0_3=1;
|
|
ps0_2=0;
|
|||
| 674 | yoguer | }
|
|
| 691 | yoguer | ||
//-------------------------------------------------------------------
|
|||
void uart0_tx(char c)
|
|||
{
|
|||
| 820 | yoguer | u0tb=c;
|
|
| 691 | yoguer | }
|
|
| 820 | yoguer | char uart0_rx(void)
|
|
{
|
|||
char c,f;
|
|||
while(ri_u0c1!=1);
|
|||
c=u0rb;
|
|||
return c;
|
|||
}
|
|||
| 691 | yoguer | ||
| 820 | yoguer | int rectrame (char *pBuffer)
|
|
{
|
|||
int i=0;
|
|||
char tampon;
|
|||
while(uart0_rx()!= '$');
|
|||
tampon=uart0_rx();
|
|||
while(tampon!='*')
|
|||
{
|
|||
*(pBuffer+i) = tampon;
|
|||
i++;
|
|||
tampon=uart0_rx();
|
|||
}
|
|||
return i;
|
|||
}
|
|||
| 691 | yoguer | ||