自己在编写有关利用CAN通讯,使用STM32控制电机旋转的代码中遇到了这一问题
![](https://img-blog.csdnimg.cn/e3b31860212e41f5856932d266ebc103.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rK56I-c5Y-I55m95bCP6L6j6bih,size_20,color_FFFFFF,t_70,g_se,x_16)
错误应该是Can_Send_Msg这个函数在main中使用时没有定义。通过查找资料发现出现这一问题的主要原因有两个:
1、未将头文件的路径导入
解决方法:将含有函数申明的头文件路径导入![](https://img-blog.csdnimg.cn/cfb74825aae64aa4bc207a396695f137.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rK56I-c5Y-I55m95bCP6L6j6bih,size_20,color_FFFFFF,t_70,g_se,x_16)
若发现文件已导入还是出现此现象,可以点击main中其他函数(与出问题的函数申明写在同一个头文件的函数)查看定义(右击函数,选择go to ...),如果可以查找到函数定义则说明是函数的问题。
2、函数设置出错
解决方法:仔细对比main,头文件,以及源文件中函数是否书写一致,是否出现大小写错误或者增缺现象。
通过以上方法,本人发现是在定义函数时函数名为“CAN_...”而在申明和调用时“Can_...”所以出错。
【注】以上仅是一个小白的自我总结,如果能帮助到您,我的荣幸;如果言语有误,请您指教;