嵌入式技术william hill官网
直播中

王树林

7年用户 1691经验值
私信 关注
[问答]

使能RTC时钟编译会报错误这是怎么回事啊?

我按照文档不走使能RTC时钟,先使能了Settings里面的RTC组件,然后打开了board.h和stm32f4xx_hal_conf.h里面的#define BSP_USING_ONCHIP_RTC和#define HAL_RTC_MODULE_ENABLED宏定义。

但是编译是会报错误,错误如下:

../applications/rtc.c:15:5: error: unknown type name 'time_t'
time_t now;
../drivers/drv_rtc.c:39:8: error: unknown type name 'time_t'
static time_t get_rtc_timestamp(void)
../drivers/drv_rtc.c:43:15: error: storage size of 'tm_new' isn't known
struct tm tm_new;

这是怎么回事啊,芯片使用的是stm32F407,

回帖(2)

贾飞世

2023-2-3 12:00:37
缺少头文件

#include

可以对照下面的解决办法试一下。
举报

贾飞世

2023-2-3 12:00:53
RTT Source Code v4.0.4 版本的 RTC 在移植时会有函数重复定义和缺少头文件的问题,需要注意一下。
错误信息如下:

../drivers/drv_rtc.c:38:8: error: unknown type name 'time_t'
static time_t get_rtc_timestamp(void)
../drivers/drv_rtc.c:211:17: error: conflicting types for 'rt_hw_rtc_register'
static rt_err_t rt_hw_rtc_register(rt_device_t device, const char *name, rt_uint32_t flag)
                 ^
In file included from F:HotNet_ProjectHN1000_GCUhn1000_gcu_apprt-threadcomponentsdriversinclude/rtdevice.h:33:0,
                 from ../drivers/drv_rtc.c:13:
F:HotNet_ProjectHN1000_GCUhn1000_gcu_apprt-threadcomponentsdriversinclude/drivers/rtc.h:42:10: note: previous declaration of 'rt_hw_rtc_register' was here
rt_err_t rt_hw_rtc_register(rt_rtc_dev_t  *rtc,


解决方法为
  1. 在 drivers/drv_rtc.c 中增加头文件 #include
  2. 文件 rt-thread/components/drivers/include/drivers/rtc.h 中注释掉 rt_hw_rtc_register()
函数的声明



举报

更多回帖

发帖
×
20
完善资料,
赚取积分