## char v.s. unsigned char 相同點:都是1byte,可以有8位元 -> 256 個數字 不同點: 1. char 最高位元為符號位元 -> -128~127 2. unsinged char 沒有符號 -> 0~255 ## complier error L6050U 在keil中,若是沒有授權(license),則程式碼的長度是有限制的,一旦超過就會發生無法編譯的問題 針對這個問題,可以使用keil的**Community**版來解決 ### 操作步驟 1. 在keil中點擊File >> License Management >> User-Based License會看到以下畫面  2. 選擇License Server並輸入相關字串->https://mdk-preview.keil.arm.com 輸入完後點選Query  3.看到以下畫面並選擇Activate  4.後續看到下面圖片就表示成功授權了  ## 在使用ST-Link時keil發生崩潰的問題 若你的keil版本是5.38、5.38a很可能會遇到按下燒錄就崩潰的問題,主因是出在這個版本的STLinkUSBDriver 正確的Driver連結如下 https://developer.arm.com/documentation/ka005381/1-0 解壓縮後將裡面的dll複製到keil安裝目錄底下的STLink當中就可以了 參考路徑 >> C:\Keil_v5\ARM\STLink 另外使用者可能會遇到的其中一種狀況是,再插上開發板上面的ST-Link時,查詢windows裡的裝置管理員有讀到COM口 資訊不是顯示ST-Link  有可能是系統端沒有安裝ST-Link Driver https://drive.google.com/file/d/1JgFzSDVhFB2DPN7dK73n2mc6KOjirEBI/view?usp=drive_link 可以去連結裡面下載檔案做安裝。 ## Default Compiler Version 5' which is not available 這個問題的主因是在新版的keil當中,Version5的Compiler已經不會安裝了 只需要對專案點擊右鍵 >> Option for Target 'xxx' >> Target >> ARM Compiler >> 選擇Version 6就可以解決了 ## 在Compiler Version 6當中使用freeRTOS無法編譯的問題 在Version 6之後的comilper都只支援GNU(編譯器套裝)的方式,而Cube MX所提供的freeRTOS並不支援,因此我們需要將Cube MX提供的版本給替換掉 需要替換的檔案如下 **port.c、portmacro.h** **勘誤:GCC為GNU其中一種最佳化編譯器** **https://zh.wikipedia.org/zh-tw/GCC** **https://zh.wikipedia.org/zh-tw/GNU** ### 操作步驟 1. freeRTOS官方的程式碼 https://github.com/FreeRTOS/FreeRTOS 2. 將下載下來的檔案解壓縮,並將路徑底下的檔案複製下來 路徑如下: **..\FreeRTOSv202212.01\FreeRTOS\Source\portable\GCC\ARM_CM4F** 3. 接著打開專案的資料夾,把剛剛複製的檔案貼到以下路徑 **..\project_name\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F** ## 使用printf將變數值輸出 對專案點擊右鍵 >> Option for Target 'xxx' >> Debug >> Settings  點擊Trace就可以到下面這個畫面 1. Core Clock 設為168MHz 1. Enable 設為0x00000001 1. Privilege 設為0x00000000 2. 只勾最後一個  最上方Project >> Manage >> Run-Time Compiler >> I/O 按照圖中的設定方式勾選  新增下列程式碼 ```c= printf("%d\n", humiInt); ``` 在debug模式下,Serial Windows >> Debug(printf)Viewer 打開就會看到向下圖的視窗了 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up