Tac*_*0sS 2 c embedded microcontroller struct header-files
我开发了一个使用MindTree蓝牙SDK的嵌入式应用程序.
我在头文件中有以下内容:
typedef struct {
UCHAR outputDir;
UCHAR reset;
UCHAR nack;
UCHAR startCondition;
UCHAR stopCondition;
UCHAR busy;
} USCI_ConfigurationFlags;
static USCI_ConfigurationFlags usciConfigFlags = { UCTR, UCSWRST, UCNACKIFG, UCTXSTT, UCTXSTP, UCBBUSY };
Run Code Online (Sandbox Code Playgroud)
后来在两个.c文件中我包含了上面的标题,并且有时在一个中断内的不同场合使用usciConfigFlags.
这合法吗?
我试图在SDK中调用BT_bluetooth_on方法之后,理解为什么(以及它是否与问题相关)结构的值在运行时更改.
谢谢,亚当.
static这并不代表你认为它意味着什么.这意味着声明和变量只能在一个编译单元中可见.也就是说,你有两个独立的实例usciConfigFlags.
如果需要全局变量,则需要使用externnot static并使用extern其中一个c文件中的初始值进行实际声明(不带).
还要在没有正确锁定的情况下更改结构中的值.只读并发访问通常很好.
| 归档时间: |
|
| 查看次数: |
6618 次 |
| 最近记录: |