error: #109: expression preceding parentheses of apparent call must have (pointer-to-) function typ

报错信息:
……(路径:) error: #109: expression preceding parentheses of apparent call must have (pointer-to-) function type
翻译:
显式调用前的括号必须具有(指针到-)函数类型
在这里插入图片描述
错误原因:
把原本数组的方括号写成圆括号了(对比源代码查出来的),改正回方括号、表示成数组格式,即可:
在这里插入图片描述

但是,此时又新产生了两个错误:L6200E:……multiply defined……(显示重复定义了)
我用全工程搜索USART1_REC_LEN的办法,发现仅在驱动函数头文件中 和 中断服务函数中,出现过两次(是因为此时,主函数中的还未写完,打算写完后再重新检查),等完成整篇代码移植后,L6200E自行消失。

待到代码全部功能移植以后,发现仍然存在L6200E与L6218E的报错,最终发现错因全部都是由于拼写错误引起的,比如上面第二张图中的库函数USART_Get_ITStatus,其实是USART_GetITStatus,这类错误引起的报错代码如果上网查询前人经验的话,不但无法正确解决问题(前人在拼写出错时与自己的拼写错误一致的概率是多少?)而且还会越带越深、越查越复杂,所以,一方面要细心,同时也说明“复制-粘贴”是多么有用,这个“复制-粘贴”用好了确实也是需要一定水平的。
最终消除错误后的结果如下(我之前还有一个错误就是把USART1_RX_STA写成 了USART1_RX_SAT,这个在主函数、中断服务函数中的错误机器都能识别并准确定位出来,但是驱动函数中的定义处写错了机器就无法识别报错了,只会用一个L6218E来报错,且定位在main.o中,读者可自行试验):
在这里插入图片描述
上图红框中的拼写错误,在编译时机器并不会当作拼写错误,而是当成另一个叫做USART1_RX_SAT变量的定义,应有的变量在编译时做缺失处理,在对象代码中体现并报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值