所有RAIL示例项目都依赖于UART,就连一些根本没有用到UART的项目(如Simple TRX )都依赖于UART, 因为retargetserial.c 是由HAL library插件自动添加到项目中的。
在AppBuilder 或Hardware Configurator 中禁用UART及所有串口的相关选项(如下图),都不能解除对UART的依赖。
其根本原因是retargetserial.c 包含了retargetserialhalconfig.h ,如果hal-config.h中没有有效UART定义的话就会触发#error “Invalid UART type”。编译就会报如下(或相似)的错误:
解决方法是从项目中移除retargetserial.c (位于hal-efr32目录) 。移除后即可成功编译了。
有一点要注意,通过AppBuilder重新生成项目后,一定要记得重新移除这个文件。