arduino自定义库c与c++的区别
2022/8/26 14:23:09
本文主要是介绍arduino自定义库c与c++的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
起初是想把手头的红牛开发板的基于stm32标准库的例子都改成用arduino库的 发现arduino库是基于hal库的 不是直接把c文件挪过来就能用的
arduino是c++编译器 如果自定义典型的用类的文件,没什么问题 就像这样 (58条消息) Arduino建立自己的工程 添加头文件 添加源文件_csdn_Flying的博客-CSDN博客_arduino添加头文件路径 。因为主程序中必定会用类生成实例 在cpp中写函数的实现没啥问题
但如果直接把适配c编译器的h文件c文件挪过来 主程序只#include .h 那就不会编译。c文件里的函数 报错找不到函数 undefined refer
正确做法是 在h文件里设置条件编译让用c编译器去处理(或者include 。c文件)
就像这样 。h
#ifndef _GPIO_H_ #define _GPIO_H_ #include <Arduino.h> #ifdef __cplusplus extern "C" { #endif #define LED1_GPIO_PIN PF6 #define LED2_GPIO_PIN PF7 #define LED3_GPIO_PIN PF8 #define LED4_GPIO_PIN PF9 #define LED5_GPIO_PIN PF10 void LED_Init(void); #ifdef __cplusplus } /*extern "C"*/ #endif #endif
。c
/** * @file Gpio.c * @author WB R&D Team - openmcu666/kyo * @version V1.0 * @date 2016.05.04/20220825 * @brief GPIO Driver */ #include "Gpio.h" /** * @brief setup pins * @param None * @retval None */ void LED_Init(void) { pinMode(LED1_GPIO_PIN, OUTPUT); pinMode(LED2_GPIO_PIN, OUTPUT); pinMode(LED3_GPIO_PIN, OUTPUT); pinMode(LED4_GPIO_PIN, OUTPUT); pinMode(LED5_GPIO_PIN, OUTPUT); }
这篇关于arduino自定义库c与c++的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享
- 2024-11-22ansible 的archive 参数是什么意思?-icode9专业技术文章分享
- 2024-11-22ansible 中怎么只用archive 排除某个目录?-icode9专业技术文章分享
- 2024-11-22exclude_path参数是什么作用?-icode9专业技术文章分享
- 2024-11-22微信开放平台第三方平台什么时候调用数据预拉取和数据周期性更新接口?-icode9专业技术文章分享
- 2024-11-22uniapp 实现聊天消息会话的列表功能怎么实现?-icode9专业技术文章分享
- 2024-11-22在Mac系统上将图片中的文字提取出来有哪些方法?-icode9专业技术文章分享
- 2024-11-22excel 表格中怎么固定一行显示不滚动?-icode9专业技术文章分享
- 2024-11-22怎么将 -rwxr-xr-x 修改为 drwxr-xr-x?-icode9专业技术文章分享
- 2024-11-22在Excel中怎么将小数向上取整到最接近的整数?-icode9专业技术文章分享