博客專欄

        EEPW首頁 > 博客 > KEIL 5編譯出現 “expected a field name”錯誤的原因

        KEIL 5編譯出現 “expected a field name”錯誤的原因

        發(fā)布人:電子禪石 時間:2019-12-26 來源:工程師 發(fā)布文章

        今天在移植程序時,出現了一個錯誤
        SYSTEM\SYS_Mcu\xxx.c(151): error:  #134: expected a field name
                CHIPCTL->CLKCTRL_b.PLLEN = 1;
        12
        這個錯誤的原因是字段名重復定義。
        由此我去檢查程序,發(fā)現PLLEN這個變量被我定義了兩遍,第一遍在芯片頭文件中的結構體重,定義方法如下
           struct {
             __IO uint32_t PLLEN       : 1;           /*!< (@ 0x0000001C) PLLEN                               */
             XXXXXXXXXX                               /*其它定義*/
            } CLKCTRL_b;`
        1234
        第二遍在外部晶振定義時。
        #define PLLEN (1<<28)   // pll
        1
        這兩種定義產生沖突因此出現了以上錯誤。
        注意:
        如果不引用結構體CLKCTRL_b中的PLLEN,而是單獨使用PLLEN這個變量,編譯器將直接按照對PLLEN的單獨定義來進行引用。如下的引用,編譯后沒有發(fā)生錯誤。
         CHIPCTL->CLKCTRL|=PLLEN;
        1
        按理來說結構體中的成員變量名可以與單獨變量名重復,但是為什么這時引用結構體成員變量名的時候會發(fā)生錯誤…可能跟keil有關,keil可能太傻了…如果有大神知道這是什么原因,請求告知~
        ————————————————

        原文鏈接:https://blog.csdn.net/ssx1995/article/details/89152141

        *博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。

        DIY機械鍵盤相關社區(qū):機械鍵盤DIY


        晶體管相關文章:晶體管工作原理


        電流傳感器相關文章:電流傳感器原理
        晶體管相關文章:晶體管原理


        關鍵詞:

        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 昌乐县| 旌德县| 顺义区| 巴彦县| 当阳市| 大名县| 宁海县| 新宁县| 措美县| 华安县| 资阳市| 江城| 中卫市| 北京市| 孟村| 瑞丽市| 天峻县| 涪陵区| 平舆县| 威海市| 新蔡县| 大渡口区| 临武县| 铜山县| 花莲县| 新龙县| 崇仁县| 黔西| 麻城市| 朝阳区| 吴江市| 金塔县| 诸城市| 巴塘县| 长治市| 瓦房店市| 云阳县| 温泉县| 灌云县| 广饶县| 许昌县|