下面是我在使用STM32的hal庫時,發現一些比較好的使用筆記,轉載一下,便于以後查閱。同時在使用hal庫時,發現了一些問題,自己備注一下。
一、調試出錯。
1、使用STM32CubeMX生成的工程無法使用Jlink仿真,出現如下的錯誤指令提示:
***JLink Error: Bad JTAG communication: Write to IR: Expected 0x1, got 0x0 (TAP Command : 10) @ Off 0x5.
原因:STM32CubeMX生成的工程預設關閉了jlink調試功能,如下圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLx0keNNzaq50MNpHW3BjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLyYzN4ITOyATM3EjMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
解決:
1、将上圖方框中的語句注釋掉即可。(但是重新使用STMCubeMx重新生成代碼時還是的需要再次注釋)
2、一勞永逸,直接在STM32CubeMx上配置,下圖:(由于我使用的是JTAG,是以選的是5pins這個選項,具體選擇得看具體的仿真工具以及仿真模式)
二、子產品的使用
1、序列槽通信
1.1 hal庫實作中斷接收(工程為STM32CubeMX生成):https://www.cnblogs.com/yf4695/p/9975230.html。
注意:每次發送,必須重新設定接收中斷,否則後面會接收不了(具體原因,有空再查)