小编dcc*_*ter的帖子

C:typedef union

在相关问题中找不到任何相关内容.最有可能是超级菜鸟,但无论如何我都会问/我的.h文件中有以下内容:

typedef union _API_Packet_0x90{
    uint8_t packet[26];
    struct _pack_struct {
        uint8_t start;
        uint8_t length[2];
        uint8_t addr64[8];
        uint8_t addr16[2];
        uint8_t options;
        uint8_t rfData[4];
        uint8_t chksum;
    };
} API_Packet_0x90;

API_Packet_0x90 ap90;
Run Code Online (Sandbox Code Playgroud)

这是微控制器的代码,我使用的是xc8工具链(以前的Hi Tech C).编译器说:

xbee_api.h:19:警告:缺少基本类型; int假设
xbee_api.h:19:错误:";" 预期
xbee_api.h:19:警告:缺少基本类型; int假设
xbee_api.h:21:警告:缺少基本类型; int假设

,这继续(太多的错误)

我认为这是uint8_t,所以我补充道#include <ctypes.h>.不.我以为这是关于名字的,所以我尝试了各种各样的戏剧,比如

typedef union {
    uint8_t packet[26];
    struct _pack_struct {

    };
} API_Packet_0x90;
Run Code Online (Sandbox Code Playgroud)

要么

typedef union {
    uint8_t packet[];
    struct _pack_struct {

    };
} API_Packet_0x90;
Run Code Online (Sandbox Code Playgroud)

或其他人.什么都没有帮助.我被卡住,因为我相信我正在遵循语法.有帮助吗?

c microcontroller typedef microchip unions

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

是否有PyScripter的Mercurial或Git版本控制插件?

我正在使用Python 3.x和PyScripter编写我的脚本.我真的很想念PyScripter中的版本控制功能 - 我被Qt和MpLab X宠坏了(我相信这是Eclipse的颠覆).事情很简单.现在我在PyScripter中没有任何版本控制,但我确实安装了Mercurial.我完全意识到我可以手工管理Mercurial,但我很懒惰,讨厌手工操作.我有其他任何一些光滑和顺畅的选择吗?我已经准备好使用任何其他vc系统(例如git) - 我只是想知道什么是最无痛的方式(正确的).

python git version-control mercurial pyscripter

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

格式化打印到循环缓冲区

我正在为STM32F3 mc(STM32F3-Discovery)编写嵌入式代码.我需要输出一些数据,UART和我的使用DMA此,因为这可以让我专注于传感器读取和数据处理,而不是等待字节传输完成.然而问题是我必须结合:

  1. 格式化输出(即来自printf的一些)
  2. 连续多次打印(在上一次打印完成之前发生)

所以我在想循环缓冲区.但我不认为我知道如何使sprintf尊重缓冲区的结束并继续写入缓冲区的开头.我当然可以创建另一个临时缓冲区,在那里打印,并逐字节复制,但它对我来说并不优雅.

c printf stm32 circular-buffer

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

Python:逻辑表达式为False,但如果不关心

可能重复:
当"if not []"成功时,为什么"[] == False"评估为False?

逻辑测试a == True如何生成False,但是如果a:有效,这怎么可能?请参阅下面的代码

>>> a = bin(0)
>>> if a:
    print a == True, 'HOWWWW???????'


False HOWWWW???????
>>> type(a)
<type 'str'>
>>> 
Run Code Online (Sandbox Code Playgroud)

python boolean-expression

0
推荐指数
1
解决办法
105
查看次数