请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR6989 尊敬的:
此主题在第一个主题(https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/931471)之后出现、但有另一个问题。
我无法写入存储器(但我可以从中读取)。
代码为:
#if defined (__TI_Compiler_version__)|| defined (__IAR_systems_icc_) #pragma vector=PORT3_vector __interrupt void Port_3 (void) #elif defined (__GNU__) void __attribute__((interrupt (PORT3_vector)))) Port_3 (void 编译器#else 不支持! #endif { /* * 4个可用 RAM 段: * 1. D --> 1800h '到187Fh * 2. C -> 1880h '到18FFh * 3. b --> 1900h '直至187Fh * 4. a --> 1980h '直到19FFh * uint16_t volatile * address =(uint16_t *) getAddress (); //读取 if (!(P3IN & BIT0)){//读取 P2DIR &= 0x00;//置于读取模式 *地址= P2IN;//->这里的故障无法写入内存 P3OUT |= BIT2; } //写入 否则{ P2DIR |= 0xFF;//置于写入模式 P2OUT &= 0x00; P2OUT |=*地址; P3OUT |= BIT2;//将 ACK 设置为1 P4DIR |= BIT0; P4OUT |= BIT0; } while (!(P3IN & BIT1)){//在 Trigger (3.1)仍然为高电平时不执行任何操作 __no_operation(); } P2DIR &= 0x00; P3OUT =~BIT2; P3IFG=0;//将所有标志设置为0 }
我要写入上述(在代码中)部分的位置。 地址是正确的(因为我能够读取这些地址、并且还通过调试器进行检查)。 但是、我无法对其进行写入(如果您想知道我是如何对其进行测试的、请参考上述对其进行说明的线程、但请放心、它是通过多种方式进行测试的)。
在我已启用的设置(在属性-> CCS 常规-> MPU 中)中、"手动指定存储器..." 并将信息存储器放在 R 和 W 上
