vscode代码不提示uint32_t(stdint.h)结构体成员

vscode代码不提示uint32_t(stdint.h)结构体成员

之前用的好好的,突然发现结构体成员只要是stdint.h中的类型就无法提示,比如uint8_t, uint32_t等,如果是int,char等就可以,说明stdint.h解析出现问题,但是编译能通过。

方法一(转自网络):

在这里插入图片描述

修改core_cm3.h,将#include <stdint.h>注释掉,并在其下一行添加如下:

#ifndef _MSC_VER / fix uint32_t for VS2013 /
#include <stdint.h>
#endif

我的问题上述方案无效。

方法二:

生效的是这种方法:

intellisense配置中的系统include路径之前是keil下的目录,后来keil被卸载,就无法生效,因此解析stdint.h出现问题。改为gcc编译器包含stdint.h的文件夹目录即可。

不知道标准库位置的可以全局搜索stdint.h,最好是编译器下的文件夹,包含比较全面。

在这里插入图片描述

在这里插入图片描述

[{ “resource”: “/E:/esp32/esp32_spi_slave(more_slave)/src/BLEClient.cpp”, “owner”: “C/C++: IntelliSense”, “code”: “135”, “severity”: 8, “message”: “类 “BLEScan” 没有成员 “isScanInProgress””, “source”: “C/C++”, “startLineNumber”: 46, “startColumn”: 43, “endLineNumber”: 46, “endColumn”: 59, “origin”: “extHost3” }] [{ “resource”: “/E:/esp32/esp32_spi_slave(more_slave)/src/BLEClient.h”, “owner”: “C/C++: IntelliSense”, “code”: “282”, “severity”: 8, “message”: “全局范围没有 “SlaveInfo””, “source”: “C/C++”, “startLineNumber”: 11, “startColumn”: 19, “endLineNumber”: 11, “endColumn”: 28, “origin”: “extHost3” } /* BLEScan.h Created on: Jul 1, 2017 Author: kolban */ #ifndef COMPONENTS_CPP_UTILS_BLESCAN_H_ #define COMPONENTS_CPP_UTILS_BLESCAN_H_ #include “sdkconfig.h” #if defined(CONFIG_BLUEDROID_ENABLED) #include <esp_gap_ble_api.h> // #include #include #include “BLEAdvertisedDevice.h” #include “BLEClient.h” #include “RTOS.h” class BLEAdvertisedDevice; class BLEAdvertisedDeviceCallbacks; class BLEExtAdvertisingCallbacks; class BLEClient; class BLEScan; class BLEPeriodicScanCallbacks; struct esp_ble_periodic_adv_sync_estab_param_t { uint8_t status; /*!< periodic advertising sync status / uint16_t sync_handle; /!< periodic advertising sync handle / uint8_t sid; /!< periodic advertising sid / esp_ble_addr_type_t adv_addr_type; /!< periodic advertising address type / esp_bd_addr_t adv_addr; /!< periodic advertising address / esp_ble_gap_phy_t adv_phy; /!< periodic advertising phy type / uint16_t period_adv_interval; /!< periodic advertising interval / uint8_t adv_clk_accuracy; /!< periodic advertising clock accuracy */ }; /** @brief The result of having performed a scan. When a scan completes, we have a set of found devices. Each device is described by a BLEAdvertisedDevice object. The number of items in the set is given by getCount(). We can retrieve a device by calling getDevice() passing in the index (starting at 0) of the desired device. */ class BLEScanResults { public: void dump(); int getCount(); BLEAdvertisedDevice getDevice(uint32_t i); private: friend BLEScan; std::map<std::string, BLEAdvertisedDevice*> m_vectorAdvertisedDevices; }; /** @brief Perform and manage %BLE scans. Scanning is associated with a %BLE client that is attempting to locate BLE servers. / class BLEScan { public: void setActiveScan(bool active); void setAdvertisedDeviceCallbacks( BLEAdvertisedDeviceCallbacks pAdvertisedDeviceCallbacks, bool wantDuplicates = false, bool shouldParse = true); void setInterval(uint16_t intervalMSecs); void setWindow(uint16_t windowMSecs); bool start(uint32_t duration, void (*scanCompleteCB)(BLEScanResults), bool is_continue = false); BLEScanResults start(uint32_t duration, bool is_continue = false); void stop(); void erase(BLEAddress address); BLEScanResults getResults(); void clearResults(); #ifdef CONFIG_BT_BLE_50_FEATURES_SUPPORTED void setExtendedScanCallback(BLEExtAdvertisingCallbacks* cb); void setPeriodicScanCallback(BLEPeriodicScanCallbacks* cb); esp_err_t stopExtScan(); esp_err_t setExtScanParams(); esp_err_t setExtScanParams(esp_ble_ext_scan_params_t* ext_scan_params); esp_err_t startExtScan(uint32_t duration, uint16_t period); private: BLEExtAdvertisingCallbacks* m_pExtendedScanCb = nullptr; BLEPeriodicScanCallbacks* m_pPeriodicScanCb = nullptr; #endif // CONFIG_BT_BLE_50_FEATURES_SUPPORTED private: BLEScan(); // One doesn’t create a new instance instead one asks the BLEDevice for the singleton. friend class BLEDevice; void handleGAPEvent( esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t* param); esp_ble_scan_params_t m_scan_params; BLEAdvertisedDeviceCallbacks* m_pAdvertisedDeviceCallbacks = nullptr; bool m_stopped = true; bool m_shouldParse = true; FreeRTOS::Semaphore m_semaphoreScanEnd = FreeRTOS::Semaphore("ScanEnd"); BLEScanResults m_scanResults; bool m_wantDuplicates; void (*m_scanCompleteCB)(BLEScanResults scanResults); }; // BLEScan class BLEPeriodicScanCallbacks { public: virtual ~BLEPeriodicScanCallbacks() {} virtual void onCreateSync(esp_bt_status_t status) {} virtual void onCancelSync(esp_bt_status_t status) {} virtual void onTerminateSync(esp_bt_status_t status) {} virtual void onLostSync(uint16_t sync_handle) {} virtual void onSync(esp_ble_periodic_adv_sync_estab_param_t) {} virtual void onReport(esp_ble_gap_periodic_adv_report_t params) {} virtual void onStop(esp_bt_status_t status) {} }; #endif /* CONFIG_BLUEDROID_ENABLED / #endif / COMPONENTS_CPP_UTILS_BLESCAN_H_ */
最新发布
10-18
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值