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.

[参考译文] MSP-EXP430FR5969:MSP430

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1307579/msp-exp430fr5969-msp430

器件型号:MSP-EXP430FR5969

您好、专家!

在过去的一年中、我对嵌入式领域并不熟悉、并且我已经在几周的时间里脱离了 MSP430代码开发、而且很难回到语义问题上。

我只是尝试将单个引脚作为 GPIO 控制、但在尝试将单个引脚配置为 GPIO 时、我经常遇到以下错误:"预期的字段名称"或"表达式必须具有结构体或联合体类型"、例如 P4OUT.BIT6

例如、我要在示例代码"Flashing the LED"中将 P4.6 (板载 LED)配置为输出。

我的代码如下所示:


#include "MSP430.h"
int main (空)


{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
PMMCTL0 = PMMPW;//打开 PMM 模块
PM5CTL0 &=~μ A LOCKLPM5;//清除锁定的 IO 引脚
P1DIR |= 0x01;//将 P1.0设置为输出方向
P4DIR.BIT6 |= 0x01;

用于(;;)
{
volatile unsigned int i;     //易失性,防止优化

P1OUT Δ^= 0x01;         //使用异或切换 P1.0
P4OUT.BIT6 ^= 0x01;    //使用异或切换 P4.6

I = 10000;// SW 延迟
我该怎么做?
while (i!= 0);

我过去用类似的语义运行过这段代码、而且没有出现问题。

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

    > P4DIR.BIT6 |= 0x01;

    > P4OUT.BIT6 ^= 0x01;    //使用异或切换 P4.6

    请尝试改用:

    > P4DIR |= BIT6;

    > P4OUT ^= BIT6;    //使用异或切换 P4.6

    ----------------

    PMMCTL0 = PMMPW;//打开 PMM 模块

    为了清零 LOCKLPM5、不需要这个操作(在 FR5系列中)。 对于需要它的(其他)情况、通常最好用

    > PMMCTL0_H = PMMPW_H;//打开 PMM 寄存器以进行写入

    所以您不会无意中清除 SVSHE。

    ----------------

    我鼓励您查看 TI 示例套件、该套件可提供有用的提醒、在某些情况下还提供可粘贴的代码。

    https://dev.ti.com/tirex/explore/node?node=A__AL2dmw21b-kJdwBXB2JdHw__msp430ware__IOGqZri__LATEST

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

    我只是想说,从我的黑心的底部,这给我带来了多大的快乐。

    我有这个工作(我想我的问题是我当时在使用不同的系统头文件),但看到它回到生活后采取的寒假和完全忘记细节-哇。 谢谢你。