刚接触stc8时,由于配置文件没有配置好,编译过程中总是被提醒u8没有定义,于是我索性在每个提示的地方加了这么一段代码
#define u8 unsigned char
#define u16 unsigned short
#define u32 unsigned int
但就是这一段代码导致了波特率57600以上(不包括57600)通信乱码
这段代码在type_def.h里面有定义,里面的定义如下
#include "type_def.h"
typedef unsigned char u8; // 8 bits
typedef unsigned int u16; // 16 bits
typedef unsigned long u32; // 32 bits
typedef signed char int8; // 8 bits
typedef signed int int16; // 16 bits
typedef signed long int32; // 32 bits
typedef unsigned char uint8; // 8 bits
typedef unsigned int uint16; // 16 bits
typedef unsigned long uint32; // 32 bits
u16跟u32的类型定义没有定义正确,并且使用错误的定义也会导致波特率乱码,但可能是u8没有定义错,所以57600以下的波特率通信是没有问题的!