这个问题在网上也搜到了几个,也一直没有找到答案,这里期待高手指点一下。
手里有两块板子,一块开发板,一块是产品。都是使用的ATMEGA128A。情况如下:
两个CPU的熔丝都设定成一样了。只是两个晶振不一样,开发板式16M,产品板是18.432M。
两者的熔丝设定为0xFF 0x19 0xFF。
开始时使用开发板的串口Demo在开发板上运行,串口0的收发都正常,在产品板子上也没有问题。
在经过一段时间的开发后,突然发现产品板上就不行了,可以往PC端发送,但是无法接收PC端数据,很奇怪。
我以为是软件写的出问题了。把程序更换为开发板的Demo程序,发现问题一样。MCU能发不能收。
而且程序用jtag写入Flash后,直接上电,程序不会自动运行。
各位大侠,麻烦看看。有可能是什么问题。
端口初始化部分代码:
void port_init(void)
{
PORTA = 0x00;
DDRA = 0xFF;
PORTB = 0x00; //PB4-7 GSM模块按键输入
DDRB = 0x00;
PORTC = 0x1F; //m103 output only
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0x8C;
DDRE = 0x00;
PORTF = 0x00;
DDRF = 0x00;
PORTG = 0x01;
DDRG = 0x01;//PG0 串口模拟输出
}