我在我的项目中使用了一个头文件,其中包含以下定义:
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
#define __I volatile /*!< Defines 'read only' permissions*/
#else
#define __I volatile const /*!< Defines 'read only' permissions*/
#endif
Run Code Online (Sandbox Code Playgroud)
将__I被用作在另一头文件如下:
typedef struct {
// more members before
__I uint32_t CR; /*!< GPIO Commit*/
// more members after
} GPIOA_Type;
#define GPIOF_BASE 0x40025000UL
#define GPIOF ((GPIOA_Type *) GPIOF_BASE)
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么__I在C中使用const而不是在C++中?您仍然可以修改CR指向的值,因为您有地址,但我只是好奇为什么定义__I不同.
对于任何感兴趣的人来说,这些__I定义来自IAR Embedded Workbench ARM for Cortex-M4,结构来自德州仪器LM4F120H5QR CMSIS文件.
我试图了解Android Open Accessory API如何与Arduino ADK板配合使用,我已经能够发送和接收信息,但我只是想知道一切是如何工作的.我得到了这个功能描述:
int AndroidAccessory::read(void *buff, int len, unsigned int nakLimit) {
return usb.newInTransfer(1, in, len, (char *)buff, nakLimit);
}
Run Code Online (Sandbox Code Playgroud)
从一些谷歌搜索我发现NAK是一些代码,如果在握手过程中出现问题就会被发送,那么NAK是否会限制一个人能够接收到的通信错误的数量?
有时,大多数时候我的LG G手表会通过进入睡眠/昏暗模式自动关闭应用程序,如果我再次通过开始菜单打开应用程序,则会打开两个活动实例(当我从中滑出一个前一个是在下面).
这在手机中永远不会发生,这是Android Wear中活动的运作方式吗?我应该在onPause()中"完成()"吗?
谢谢.