|
下面是我的程序,挺简单的,但是通过PC发给信号时一直识别是00,一晚上没睡觉了。。。
#include "avr/io.h"
#define SetBit( __port, __bit ) __port |= ( 1<<__bit )
#define ClrBit( __port, __bit ) __port &= ~( 1<<__bit )
unsigned int data;
void com_init() //串口初始化
{
UBRRL = 51;
UBRRH = 0;
UCSRA = 0x00;
UCSRC = (1<
UCSRB = (1<
}
void main()
{
DDRA=0xFF; //置PC口输出
PORTA=0xFF; //PC口设置内部上拉电阻
com_init();
// while(!(UCSRA&(1<
// data=05;
// UDR=data;
while(!(UCSRA&(1<
while(RXC==1) //接收到数据开始判断
{
switch (UDR)
{
case 00:
// ClrBit( PORTA, PA0 ); //对Pa0写0
break;
case 01:
ClrBit( PORTA, PA1 ); //对Pa1写0
break;
case 02:
ClrBit( PORTA, PA2 ); //对Pa2写0
break;
case 03:
ClrBit( PORTA, PA3 ); //对Pa3写0
break;
case 04:
ClrBit( PORTA, PA4 ); //对Pa4写0
break;
case 05:
ClrBit( PORTA, PA5 ); //对Pa5写0
break;
case 06:
ClrBit( PORTA, PA6 ); //对Pa6写0
break;
case 07:
ClrBit( PORTA, PA7 ); //对Pa7写0
break;
default:
break;
}
}
}
|
|