注意升级后的STC8H.H头文件。
笔者一直使用STC芯片。STC芯片也在不断出新。近年已经使用STC8A的A12到D4版本,每次换用新的芯片,笔者都注意仔细阅读技术手册,并记录下需要使用的新增功能。最近考虑产品改用STC8H8K64U芯片,目的直接用USB口与PC机连接,抛弃USB转串口芯片。
有关CDC串口程序已经打包完成,加入到以前的项目。发现仅仅将之前的STC8.H头文件替换为STC8H.H头文件,原程序没有任何改动,再编译项目。这时出现不少错误和警告。而且根据错误提示,很难确定错误的原因。
问题应该是由STC8H.H头文件引起。按理说后来的头文件应该是扩充了以前的头文件,虽然并没有使用扩展的寄存器等。最后仔细比较以前和现在的头文件,发现:程序中用到的寄存器“BUS_SPEED”在后来的头文件中没有定义。与ADC有关的符号值“ADC_START”和“ADC_FLAG”等均没有再定义,而之前程序中使用了。
再将“BUS_SPEED”加入STC8H.H头文件重新定义后,并添加与ADC相关的符号值,项目编译通过,无警告、无错误。
所以在改用新的芯片时,要注意头文件可能带来问题。对于几千行的程序,有时一个符号增删都会引发多处错误,且一下子还不易找出问题所在。
页:
[1]