小编Sof*_*Dev的帖子

有没有理由在C语言中声明一些"volatile const"但在C++中只是"volatile"?

我在我的项目中使用了一个头文件,其中包含以下定义:

#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文件.

c c++ iar cmsis cortex-m

8
推荐指数
1
解决办法
578
查看次数

什么是Nak限制?

我试图了解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是否会限制一个人能够接收到的通信错误的数量?

android arduino adk

6
推荐指数
1
解决办法
844
查看次数

如何阻止Android Wear活动拥有多个实例?

有时,大多数时候我的LG G手表会通过进入睡眠/昏暗模式自动关闭应用程序,如果我再次通过开始菜单打开应用程序,则会打开两个活动实例(当我从中滑出一个前一个是在下面).

这在手机中永远不会发生,这是Android Wear中活动的运作方式吗?我应该在onPause()中"完成()"吗?

谢谢.

android wear-os

5
推荐指数
1
解决办法
1321
查看次数

标签 统计

android ×2

adk ×1

arduino ×1

c ×1

c++ ×1

cmsis ×1

cortex-m ×1

iar ×1

wear-os ×1