嵌入式技术论坛
直播中

张虎豹

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

请问为什么drv_usart.c报错undefined reference to `rt_hw_serial_isr

问题现象:

2.jpg

3.jpg

我进行的操作(目的是使用V2版本的串口):

使能了串口设备:

2.jpg

打开了要用到的串口的宏开关:

2.jpg

将rtdevice.h中的内容修改为:

2.jpg

然后我用宏开关的方法注释掉了serial.h和serial.c的全部内容:

2.jpg

3.jpg

然后编译,然后报错:

2.jpg

疑问:

按理说“对某某函数的未定义引用”这样的错误应该是函数原型和声明缺失导致的,但我函数的原型和声明都不缺呀,如下:

(文件drv_usart.c中的未定义引用部分的rt_hw_serial_isr函数):

2.jpg

(rt_hw_serial_isr函数声明于serial_v2.h,定义于serial_v2.c):

2.jpg

3.jpg

(drv_usart.c中包含的drv_usart.h文件内容如下):

2.jpg

3.jpg

(drv_usart.h中有#include “rtdevice.h”,而rtdevice.h有#include “drivers/serial_v2.h”):

2.jpg

然后我就不明白了,为什么报错“对某某函数的未定义引用”,明明有声明、有原型呀?

芯片型号:AT32F403ACGU7
支持包版本:0.0.9
系统版本:4.1.0

回帖(2)

张国厚

2023-2-2 14:45:23
目前除了几个ST的个例以外应该都还没适配serial V2版本吧,我现在也用的雅特力的,都是用V1版本的串口驱动
举报

张虎豹

2023-2-2 14:45:31
原来是这样,V1版本我也遇到问题来着,我再试一下V1版本的。
举报

更多回帖

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