Member 12444281 Ответов: 2

PIC16F877A UART код для последовательной отправки и приема данных


Привет

Я написал код для последовательной передачи данных между PC-hyper-terminal и PIC16F877A. Когда я использую MP LAB IDE Hitech C compiler он показывает ошибку как указатель требуется и любой из вас пожалуйста проверьте код и описание регистра правильно или нет

Что я уже пробовал:

  #include<pic.h>
  #include<string.h>


void pic_init(void)
{
	TRISC7=1;
	TRISC6=0;
}

void uart_init(void)
{
	TXSTA=0x20;
	RCSTA=0x90;
	SPBRG=15;
}

void tx(unsigned char byte)
{
int i;
TXREG=byte;
while(!TXIF);
for(i=0;i<400;i++);
}

void string_uart(char *q)
{
	while(*q)
	{
	*(*q++);
}
}
unsigned char rx()
{
	while(!RCIF);
	return RCREG;
}



void main()
{

	//char *q;
	pic_init();
	uart_init();
	tx('N');
	rx();
	string_uart("test program");
}

2 Ответов

Рейтинг:
2

CPallini

Цитата:
пустота string_uart(типа char *м)
{
а(*г)
{
*(*вопрос++);
}

Вы действительно имели в виду
void string_uart(char *q)
{
  while(*q)
  {
    tx((unsigned char) *q);
    ++q;
  }
}

?


Рейтинг:
2

Gokul G Lekshman

void string_uart(char *q)
{
  while(*q)
  {
    tx(*q++);
  }
}