置頂文章

想學某項MCU 撰寫技術或系統平台開發不難,只要有錢有閒(時間)就可以! 十年二十年給你無後顧之憂的專注研究,包你不成仙,至少也可成精! 要找技術解決方法或相關程式碼,這裡可能沒有,網路上到處都有。 但如果你研究討論系統技術開發與如何結合後續資源、商業模式操作可能性時, 歡迎留言討論!!這才是能改變你工程師人生的契機。

2026年5月13日 星期三

老工程師的技術分享(一) --- Keil 編輯亂碼

寫技術經驗分享文,我也可以啊。反正你只要工程師資歷夠久(老),然後多經歷

一些系統開發案,甚麼奇奇怪怪的系統應用,你就會磨練出諸多技術知識累積了。

我們也來幫Google AI 建立多一點搜尋資料庫吧。

不想在大公司上班,老是做一些固定系統開發,想豐富自己系統開發人生,

那就跳出舒適圈,辛苦地想辦法存活下來,資源有限就得要依賴廣大的

網路知識庫,尤其是在系統初期建立與架設。現在有很多系統平台我們都不太

可能還要自己一步一腳印地從零開始來寫系統韌體。要嘛就是拿原廠的範例

程式,要嘛就是透過網路搜尋找....坦白說:大陸工程師人口眾多,大家也都想

拚出頭,所以各種系統應用開發都有一大堆人做,也會想辦法貼文自吹,甚至

你隨便去淘寶(蝦皮也都是啦)買個開發板,也會無私地送你整套的原始代碼。

但問題來了:他們就是喜歡用簡體中文寫註解...----這個我跟各位報告:

這是沒解的啦!😂 以前我在園區IC 設計公司帶系統應用團隊,我部門是

橫跨兩岸,我們這邊負責平台底層核心,然後大陸團隊負責客戶市場應用。

所以一套系統平台韌體就兩邊人一起寫,我們台灣工程師習慣還可以,

反正大家用英文註解也不覺得不好,也習慣,問題是大陸工程師就是喜歡用

中文,結果每次韌體改版來回幾趟就出現一大堆亂碼註解。😅😂😓

我雖然苦口婆心的建議與鼓勵大陸工程師儘量以英文註解,成效就是零----

不是成效低喔~就是直接歸零。算了,我後來也懶得要求了。反正最後還是

得靠他們在大陸服務我們廣大的客戶市場,只要他們把事情搞定就好。

----

現在反過來了,當我們拿到大陸給的系統應用範例程式時,出現亂碼怎麼辦?

我現在就做一個簡單示範:

譬如我們拿到一個標準的無刷馬達控制韌體(keil 開發平台),其實這也是人家

國外開源程式碼--- ESC32 。大陸人就是有一大堆人也會幫你整理研究一下,

因為原始韌體程式碼的註解也不多,讓你想研讀一下Code 也辛苦,所以呢

你也可以從大陸人整理增加程式註解的看一下無刷馬達控制邏輯。

問題就會出現簡體中文到了我們手上水土不服現象。我就簡單的分享一下

處理方式:


亂碼!!


但有些檔案卻不會,到底是為什麼?這就是出現在文字編碼問題了。

以前我也沒在研究這些,但自己寫PC APP 應用軟體久了,你就自然懂了

這些文字編碼的"因果循環報應"了。😂😅

我們把這兩個檔案用標準的記事本打開就知道了:



沒出現亂碼的檔案是屬於 UTF-8 編碼的。

出現亂碼的是:ANSI


現在很少人用 ANSI 了,但你不能怪他們,因為最原始的檔案是來自於國外,

老外寫程式,包括註解也肯定就是那些標準的 ANSI 字母就夠用了,根本不用

管(也不會出現)奇怪的英文字母。但到了我們東方國度之後,你在標準Window

平台環境裡,作業系統就會幫你存檔、轉檔。幾次後,這檔案的屬性就全亂了。

你們有興趣也可以去研究一下從 ANSI 到 UTF8/UTF16LE/UTF16BE/UTF32 及

Unicode 的歷史淵源

技術的東西你研究不完的啦,只能靠緣分(機緣)~碰到了就學一下吧。😊😆

---

所以我們只要這個看起來是亂碼的檔案稍微做一下轉檔處理就可以了:


你就用WORD 開啟這個亂碼檔案,微軟(編碼之亂的始作俑者、歷史包袱)就會正確

的還原你看得懂的文字了。然後呢,在另存新檔。這時WORD 就會問你了:


那你就把它改成 UTF-8 編碼就可以了。檔名先暫訂*.txt 也沒關係啦。

然後你可以再用記事本開啟這個檔案看一下:



這個內容有幾個重點:一來檔案已經是 UTF-8 了,不過是帶 BOM 的UTF-8 。

搞不清楚BOM ?那就點擊上述的那個連結吧。

二來他跟你說是 Windows,而非unix(LF)。有甚麼差別?😩

你想哭嗎?當你用Visual Studio C++ 寫過APP 軟體時,你才哭不完耶!😭

---

然後你把這個 *.txt 再改回 *.c ,在Keil 平台裡重新打開看:好了。


----

因為這種技術文章問題,你也只能在我們這個繁體中文世界裡才會碰到,

所以我就特別拿出來分享一下。轉完全簡體中文版的程式碼我就

擺在這裡分享給各位,有興趣研究用 stm32f103 寫一個無刷馬達的

標準範例,就可以拿來研究參考了。下載連結

---

PS:加碼演出:如果你在Keil 平台裡寫程式,碰到想寫這個 " °C"/"°F"時,

你就得用BOM 的 UTF-8 。

5 則留言:

  1. 換一個editor就可以看到。然後IDE中的我都不想管,新的IDE比較沒有這樣的問題。另一個是白底的IDE看久了眼睛會花掉(字小也是問題),我都另外用一個暗底色的editor(字型可調整到合適的),不然早上九點寫到下午四點眼睛就完了(變成老花)。換了幾個editor,後來還是VS Code最舒服,用暗底一路寫到晚上加班也沒有事。
    我有位網友死不換editor說配置以及顏色無法適應,我只能說眼睛是自己的不保護好是自己的事。
    簡中註解算好的,還有德文夾英文,真的連動也不想動。

    回覆刪除
    回覆
    1. 不過都是歷史了,現在用AI寫碼,IDE上除錯的時間又變長了。還沒有統計那一個工具看的時間比較長。之前最長的是broswer,都在Google找。AI時代就不知道了。

      刪除
    2. 謝謝你所提供的意見。
      我也覺得現在 VS Code 整合度也越來越好了。
      只是老人家有多的時間就得要好好保養自己。

      現在你也可以體會到說:人老了,各方面也不比年輕時,
      可以恣意使用身體(腦力、眼力等)了。
      看電視廣告時,為什麼會有那麼老人保養食品廣告?
      這不是沒有道理的啦。

      幸好的是:一來我也寫VC++ ,所以也不會一直盯著同一套IDE。
      另外就是:我們家的狗狗,也會隨時提醒我說:該休息
      帶牠出去戶外走走,讓眼睛休息一下。

      所以我才一直奉勸各位年輕朋友:趁年輕時,就得要好好的
      規劃自己以後的歲月,光只是一直想寫 Code ;關起門來
      弄技術...這些終究都有其歲月極限的啦。

      刪除
    3. 所以又回到一個不得不面對的 AI 趨勢問題。
      昨晚散步時聽我兒子們說:現在有公司也鼓勵工程師使用AI,
      寫程式或協助系統開發等,有時還會以 Token數/月 使用率
      來當部門績效KPI 評估。

      這好像是:叫工程師用AI 取代(幹掉)自己一般。
      這也沒辦法,這也是老闆想快速提升公司效率。
      所以我才說有時候貼這種文章也真的沒啥意義了啦。

      刪除
  2. 謝謝你提醒我可以去變更IDE 環境顏色:
    MDK-keil-theme-one-dark:
    https://github.com/pikasTech/MDK-keil-theme-one-dark

    或是
    凡事問AI 搜尋:

    將 Keil IDE 改成黑色主題主要有替換配置檔(最快最全面)與手動修改內建設定兩種方法。 [1]
    ## 方法一:替換 global.prop 檔案(推薦)
    這是最快速且顏色最均勻的作法。 [2]

    1. 關閉 Keil 軟體。
    2. 下載黑色主題檔:在網路搜尋「Keil global.prop 黑色主題」並下載該檔案。
    3. 開啟安裝路徑:進入 Keil5 的安裝目錄,預設通常為 C:\Keil_v5\UV4\。
    4. 備份舊檔案:將該目錄下的 global.prop 重新命名為 global.prop.bak 作為備份。
    5. 貼上新檔案:將下載的黑色主題 global.prop 檔案複製到該目錄下。
    6. 重新開啟 Keil 即可看到黑色主題。 [2, 3, 4]

    ## 方法二:手動修改內建顏色設定
    如果您不想下載外部檔案,可以直接在軟體內手動調整編輯器顏色。 [1, 5]

    1. 開啟設定:點擊上方工具列的 Edit $\rightarrow$ Configuration(或點擊扳手圖示)。
    2. 切換分頁:選擇 Colors & Fonts 標籤頁。
    3. 選擇語言:在左側 Window 列表中點選 C/C++ Editor files。
    4. 更改背景色:
    * 在右側 Element 列表中選擇 Text。
    * 點擊右側的 Colors $\rightarrow$ Background。
    * 將顏色改成黑色(或深灰色,如 RGB:30, 30, 30)。
    5. 調整字體顏色:依序點選其他 Element(如 Keyword、Comment),調整其 Foreground 顏色以確保在黑背景下清晰可見。
    6. 儲存設定:點擊 OK 儲存。 [5]

    如果需要完全整合的現代化黑夜模式,亦可考慮官方推出的雲端與桌面架構新版 [Keil Studio 全新環境](https://www.21ic.com/article/897931.html)。 [6]
    如果您在替換檔案後遇到字體大小或特定語法看不清的問題,可以告訴我您使用的是 C51 還是 MDK 版本,我能為您提供更精準的字體與顏色微調參數。 [7]

    [1] [https://comate.baidu.com](https://comate.baidu.com/zh/page/qgm11a2iu69)
    [2] [https://blog.csdn.net](https://blog.csdn.net/life6/article/details/153310659)
    [3] [https://blog.csdn.net](https://blog.csdn.net/m0_62598303/article/details/129214190)
    [4] [https://www.cnblogs.com](https://www.cnblogs.com/xingboy/p/12202332.html)
    [5] [https://blog.csdn.net](https://blog.csdn.net/coollingomg/article/details/127759860)
    [6] [https://www.21ic.com](https://www.21ic.com/article/897931.html)
    [7] [https://www.bilibili.com](https://www.bilibili.com/video/BV1aJ4m177sS/)

    回覆刪除