帮我看下代码,怎么不能接受到GPS数据
#include <iom16v.h>#include <macros.h>
#defineuchar unsigned char
#defineuintunsigned int
#definemclk 8000000
#pragma interrupt_handler uart_rx:12
uchar rdata,flag=0;
void uart_init(uint baud)
{
UCSRB=0x00;
UCSRA=0x00; //控制寄存器清零
UCSRC=(1<<URSEL)|(0<<UPM0)|(3<<UCSZ0); //选择UCSRC,异步模式,禁止校验,1位停止位,8位数据位
baud=mclk/16/baud-1 ; //波特率最大为65K
UBRRL=baud;
UBRRH=baud>>8; //设置波特率
UCSRB=(1<<TXEN)|(1<<RXEN)|(1<<RXCIE);//接收、发送使能,接收中断使能
SREG=BIT(7); //全局中断开放
DDRD|=0X02; //配置TX为输出(很重要)
}
void uart_rx()
{
UCSRB&=~BIT(RXCIE);
rdata=UDR;
flag=1;
UCSRB|=BIT(RXCIE);
}
void main()
{
uart_init(4800);
while(1)
{
if(flag)
{
flag=0;
}
}
} 我单片机型号是atmega 16 Jcom C3-370C,这个模块是要发指令启动还是通电就按默认参数启动 通电就接收的。
页:
[1]