原创 ARM 之八 Cortex-M/R 內核啓動過程 / 程序啓動流程(基於IAR)

  在前面的文章《ARM 之 Cortex-M/R 內核啓動過程 / 程序啓動流程(基於ARMCC)》中已經介紹過了 Cortex-M/R 內核相關內容。這裏基於 IAR 的啓動流程與之前的並沒有太大區別,因爲這是 Cortex-

原创 FreeRTOS 之五 動態內存管理(heap_1.c)詳解

寫在前面   寫這篇文章時,網上已經有了鋪天蓋地的文章來介紹 FreeRTOS 的動態內存。之所以還去寫這篇博文,主要還是記錄自己的學習過程。結合源代碼一步一步分析一下FreeRTOS究竟是怎麼實現的其內存部分。 簡介   Fre

原创 SourceInsight 4.0 之三 常用宏使用、編輯、修改詳解(附最新完善版本的宏)

簡介   SourceInsight 作爲一款經典的代碼查看工具,小巧、強大,各種代碼通吃!從2018年開始,更新到了4.x版本。相對於之前死都不更新的3.5版本,4.x 的添加了許多更爲好用的功能!以下文章均是以最新版本的 So

原创 CAN 總線 之一 總線拓撲、物理電平、發展史 詳解

簡介   CAN 是 Controller Area Network 的縮寫,即 控制器局域網絡。通常稱爲 CAN BUS,即 CAN 總線。可以歸屬於工業現場總線的範疇,是目前國際上應用最爲廣泛的開放式現場總線之一。CAN是一個

原创 CAN 總線 之五 BOSCH CAN2.0 Part B(標準格式消息 和 擴展格式消息)

前言   隨着越來越多的應用程序接受和引入串行通信,這就要求對特定應用程序的通信功能分配消息標識符以進行標準化。如果將原來由 11 個標識符位定義的地址範圍擴大,則可以更方便地使用 CAN 實現這些應用程序。   因此,引入了第二

原创 STM32 之九 HAL 庫串口(USART/UART)驅動 BUG 及解決方法

寫在前面   在工作中,部分產品使用了ST最新的 HAL驅動庫,發現 HAL 庫 BUG 還是挺多的!本文重點針對在使用HAL庫的 UART / USART 部分時,發現的以下幾個個比較嚴重Bug。其嚴重影響正常產品中使用!特此備

原创 排序算法 之四 分類、時間/空間複雜度、如何選擇

寫在前面   現在網上關於排序算法的文檔不計其數,爲什麼要寫這篇文章呢?主要是因爲一些算法雖然在平時有用到,但是從來沒有細細整理過,沒有個統一、整體的認識。寫這篇文章一來是進行一下總結,二來趁機再系統的學一下各排序算法! 分類 根

原创 CAN 總線 之二 CAN 技術的歷史

History of CAN technology   In February of 1986, Robert Bosch GmbH introduced the Controller Area Network (CAN) ser

原创 CAN 總線 之六 BOSCH CAN 比特位填充(編碼規則)、歸零編碼(RZ)和不歸零編碼(NRZ)

幀格式   在 CAN 總線中,爲了確保足夠的轉換以保持同步,在相同極性的 5 個連續位之後使用位填充。下面以 標準格式來進行說明,先看下面標準格式的幀的圖示: 在某些文檔中,將 CAN 幀分爲以下部分: Header ( H

原创 STM32 之十 供電系統及內部參照電壓(VREFINT)使用及改善ADC參考電壓

問題   今天在使用 STM32F407 的 ADC 時遇到一個問題:ADC 的參考電壓都是通過 Vref+ 引腳提供的並作爲ADC轉換器的基準電壓(部分 MCU 沒有 Vref+ 引腳)。當我們使用的 Vref+ 是直接取自用

原创 ARM 之六 Cortex-M 內核中斷/異常系統、中斷優先級/嵌套 詳解

問題 最近在使用STM32F3芯片的時候,遇到這樣一個問題:如果外部中斷來的頻率足夠快,上一個中斷沒有處理完成,新來的中斷如何處理? 在調試時,發現有中斷有 掛起、激活、失能等狀態,考慮這些狀態都是幹啥用的呢!他們是Cortex-

原创 STM32 之十二 FLASH 使用詳解 及 LL 庫 FLASH 驅動實現

  最新項目中需要使用 STM32L476 的片子。在選擇片子時,資源的多少成爲了一個比較重要的考量。在斟酌一番之後,我決定採用 LL 庫來實現本次的功能。但是在使用 LL 庫的時候發現其中並沒有處理 FLASH 的驅動 stm3

原创 CAN 總線 之四 BOSCH CAN2.0 Part A

前言   隨着越來越多的應用程序接受和引入串行通信,這就要求對特定應用程序的通信功能分配消息標識符以進行標準化。如果將原來由 11 個標識符位定義的地址範圍擴大,則可以更方便地使用 CAN 實現這些應用程序。   因此,引入了第二

原创 USB 之四 USB 發展(更名)史 / USB 規範變化

  從網上盜了個圖(出處不知道哪裏,如果誰看到本文知道出處或者有侵權,請點擊左側的小企鵝聯繫刪除!),先上個圖看看當前衆多的 USB 接口 衆多的 USB 接口可謂眼花繚亂!最主要的是,USB 的命名會給一些人造成誤解。   隨

原创 Git 之三 分支管理

寫在前面   Git 的官網上有很詳細的使用教程(當然有翻譯版本),具體地址是 https://git-scm.com/book/zh/v2。唯一不足就是,很多講解並沒有實機演示。但是,毫無疑問,官網資料是最全面的!如果有任何疑問