利用串口方式将原本51单片机上的串口程序移植到STM32上,调试了两天终于可以显示了
1. 排查IO的初始化是否有问题,在STM32平台上需要对IO口时钟使能,IO口模式配置,一些特殊的管脚还需要做特殊的配置。
2. 检查延时函数,一般来说移植到51的程序到了STM32的话时序会发生比较大的改变,这点要注意。
3. 相关语法,在STM32里面关于字符串的定义是char类型,这点要注意,在51里面的unsigned char 在STM32编译里面就会报警。特别是在移植相关代码是要注意代码是否完整。
4. 相关位带操作。我的代码利用的正点原子的代码来宏定义管脚,但要注意的以下操作是不成立的,
SID=bbyte&0x80; //取出最高位
只能这样写:
if((byte&0x80) == 0x80)
LCD_SDA = 1;
else
LCD_SDA = 0;