在设置UCSRC寄存器的时候要注意:
1.要一次性把所有位都设置完,否则只有后面设置的那一句生效
2.设置时,必须同时设置URSEL位,使能写 UCSRC。
例如,我刚开始设的:
UCSRC |= (1<<URSEL)|(1<<UPM0) |(1<<UPM1); //odd parity
UCSRC |= (1<<URSEL)|(1<<UCSZ0) |(1<< UCSZ 1); //set data length 8
设置完第二句后,第一句奇校验便失效了。。
必须是: UCSRC |= (1<<URSEL)|(1<<UPM0) |(1<<UPM1) |(1<<UCSZ0) |(1<< UCSZ 1) ;