This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2355:带有位字段的枚举类型--字段在无意中发生更改而没有被命令这样做????

Guru**** 2543760 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/966892/msp430fr2355-enum-type-with-bitfields-----fields-inadvertently-changing-without-being-commanded-to-do-so

器件型号:MSP430FR2355

想知道是否有人在位域中看到了这个问题。  我有以下内容  

struct userWakeFlags

volatile char wakeUpFlag:1;
volatile joinchar SwitchFlag:2;
volatile char clientJoinFlag:1;
volatile char swlockout:1;
};

我在客户端和主机上运行代码。  根据 P2.1通过 EVM 上的跳线被拉低或拉高、代码具有条件、如果为真、则配置计时器。  如果发出 WAKEUUPFlag、则可以根据计时器进行切换。  客户端(P2.1)未声明。  当我在5分钟左右之后将代码移动时、代码将停止、我注意到客户端上的 WakeUpFlag 已设置。  这是怎么可能的?

在同一个主题上,joinSwitchFlag 只被设置为1或2,有时(运行5或10分钟)代码停止,我在这个标志上得到值3。。。 这是怎么可能的? 此标志基于主机和客户端上的交换机。  有时主机端会中断、有时客户端会中断。  当开关被按下时,它只能在主机端发生变化,但是我离开了我的办公桌,我会回来的,注意到它已经停止了,看到标志被设置为3......

是否有人看到位字段损坏?  我是否应该不使用它们?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    bitfield 命令对 MSP430没有问题。 请检查您的代码中是否存在任何其他错误。 我希望您通过下面 E2E 中的指南查看您的代码

    请检查您自己的代码以使用正确的指令。  

    霍肯