正在使用标准外设库将一个项目从STM32F105移植到STM32F103。在编译过程中,出现以下错误: In file included from ../Drivers/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c:23:0:../Drivers/STM32F10x_StdPeriph_Driver/inc/stm32f10x_can.h:47:49: error: 'CAN2' undeclared (first use in this function); did you mean 'CANx'? ((PERIPH) == CAN2))在stm32f10x_can.h文件,可以找到: #define IS_CAN_ALL_PERIPH(PERIPH) (((PERIPH) == CAN1) || \ ((PERIPH) == CAN2))但是STM32F103仅在stm32f103xe.h中定义了CAN1。 问题是如何编译STM32F103的标准库? 一种解决方法是删除所有对CAN2的引用,标准外设库应该是F1系列中所有MCU的标准。怎么操作能够实现不需要修改库的源代码就可以为这些mcu编译。
|