博客專欄

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

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

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

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

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

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

        DIY機械鍵盤相關社區:機械鍵盤DIY


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


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


        關鍵詞:

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 淳安县| 健康| 肇州县| 蒙山县| 顺平县| 福建省| 景宁| 郴州市| 孙吴县| 泰和县| 广宁县| 建昌县| 张家港市| 化州市| 静乐县| 安岳县| 苗栗县| 阿瓦提县| 张家港市| 梅河口市| 津南区| 班戈县| 宜都市| 淮安市| 吴桥县| 叙永县| 永泰县| 长武县| 广宁县| 原平市| 南涧| 民权县| 伊通| 铜陵市| 湘阴县| 宾川县| 德惠市| 上饶县| 浦县| 汕尾市| 华坪县|