ST提供的FW库和USB库是独立的,实际上USB产品是两个都需要的
最近一个案子中碰到编译老出错的问题,说某某重复定义。 最后确认是“stm32f10x_type.h”的被包含问题,我再三确认我所有的.h文件都有避免重复include的宏保护。
USB库中有个文件“usb_type.h”,其中大部分是copy的“stm32f10x_type.h”中的内容。下面是摘抄,看到了吧,这个避免重复include是不完整的。就是它折腾了我好几个小时,打开Keil的预编译输出,才发现这个问题。
#ifndef __STM32F10x_TYPE_H ...................... ...................... #endif
STM32的这两个库,独立提供,但用户经常一起用,建议ST对其做整合,把USB库中的冗余信息干掉,作为FW库的一部分,毕竟FW库是主力,USB库相当于股市的二级市场而已。
另外STM32的库中对bool定义成TRUE和FALSE的枚举,这个也很不好,bool是C99的标准类型。建议改成像VC那样的BOOL,这样即可延续原来的习惯,也可避免跟C标准的冲突。 |