[求教]PMM写入老是PUC

楼主
[求教]PMM写入老是PUC
我用的是F5438
对PMM寄存器操作的时候一写就PUC,不知道怎么回事。

下面这两句,执行到第二句的时候就PUC...

PMMCTL0  = 0xA500;
SVSMIO  |= SVMHOE;
 
哪位大侠指点一二

我用的头文件是自带的io430x54x.h

头文件是如下面这样写的,但是PMMCTL0是16位的寄存器,而下面的定义只有8位。
按照这个定义去执行上面两条语句的时候到第二句就PUC了。

__no_init volatile union
{
  unsigned short PMMCTL0;  /* PMM Control 0 */
 
  struct
  {
    unsigned short PMMCOREV0     : 1;  /* PMM Core Voltage Bit: 0 */
    unsigned short PMMCOREV1     : 1;  /* PMM Core Voltage Bit: 1 */
    unsigned short PMMSWBOR      : 1;  /* PMM Software BOR */
    unsigned short PMMSWPOR      : 1;  /* PMM Software POR */
    unsigned short PMMREGOFF     : 1;  /* PMM Turn Regulator off */
    unsigned short               : 2;
    unsigned short PMMHPMRE      : 1;  /* PMM Global High Power Module Request Enable */
  } PMMCTL0_bit;  
} @ 0x0120;

所以我又在下面加了一个高8位:

__no_init volatile union
{
  unsigned short PMMCTL0;  /* PMM Control 0 */
 
  struct
  {
    unsigned short PMMCOREV0     : 1;  /* PMM Core Voltage Bit: 0 */
    unsigned short PMMCOREV1     : 1;  /* PMM Core Voltage Bit: 1 */
    unsigned short PMMSWBOR      : 1;  /* PMM Software BOR */
    unsigned short PMMSWPOR      : 1;  /* PMM Software POR */
    unsigned short PMMREGOFF     : 1;  /* PMM Turn Regulator off */
    unsigned short               : 2;
    unsigned short PMMHPMRE      : 1;  /* PMM Global High Power Module Request Enable */
    unsigned short               : 8;  /*加的高8位PMMKEY
  } PMMCTL0_bit;  
} @ 0x0120;

加上后再执行上面两条语句还是PUC
密码是A5没有错啊,那是哪里问题了。请教!
1楼
回樓上的,這個貼子貌似我回過了。
樓主下面加的那個8位加不加都可以,無所謂。
問題出在,向PPMCTL0寫了密碼後還要寫一個東西才行
PMMCTL0  = 0xA500+PMMCOREV_2;或者隨便加個什麼東西就OK了。
SVSMIO  |= SVMHOE;

电脑版 Page created in 0.1719 seconds width 3 queries.