我也测试过 4.0.3内核的 RTC 是没问题的,4.0.4有问题。后来我自己修改了一下就可以正常使用了,如果你的代码报的错误和我的一样,可以参照我的修改方法进行修改
错误提示1:提示不能识别 time_t,错误提示如下所示:
../drivers/drv_rtc.c:38:8: error: unknown type name 'time_t'
../drivers/drv_rtc.c:42:15: error: storage size of 'tm_new' isn't known
解决办法:在 drivers/drv_rtc.c 里面增加头文件 #include
错误提示2:提示 rt_hw_rtc_register 重复定义,提示如下:
../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:rttatk-f429rt-threadcomponentsdriversinclude/rtdevice.h:33:0,
from ../drivers/drv_rtc.c:13:
F:rttatk-f429rt-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,
^
解决办法:将 components/drivers/include/drivers/rtc.h 中 rt_hw_rtc_register 的注释掉即可,
注释后的代码如下图所示
按照上面的方法就能解决 RTC 驱动报错的问题,解决之后经测试使用没有问题。
我也测试过 4.0.3内核的 RTC 是没问题的,4.0.4有问题。后来我自己修改了一下就可以正常使用了,如果你的代码报的错误和我的一样,可以参照我的修改方法进行修改
错误提示1:提示不能识别 time_t,错误提示如下所示:
../drivers/drv_rtc.c:38:8: error: unknown type name 'time_t'
../drivers/drv_rtc.c:42:15: error: storage size of 'tm_new' isn't known
解决办法:在 drivers/drv_rtc.c 里面增加头文件 #include
错误提示2:提示 rt_hw_rtc_register 重复定义,提示如下:
../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:rttatk-f429rt-threadcomponentsdriversinclude/rtdevice.h:33:0,
from ../drivers/drv_rtc.c:13:
F:rttatk-f429rt-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,
^
解决办法:将 components/drivers/include/drivers/rtc.h 中 rt_hw_rtc_register 的注释掉即可,
注释后的代码如下图所示
按照上面的方法就能解决 RTC 驱动报错的问题,解决之后经测试使用没有问题。
举报