原创 STM32高級開發(12)-在GCC中使用printf打印串口數據

在大家使用keil或是iar開發stm32等arm芯片的時候,想來最不陌生的就是使用print通過串口輸出一些數據,用來調試或是其他作用。但是要明確的是由於keil iar gcc 他們使用的標準C語言庫雖然都遵循一個標準,但他們底層的函

原创 STM32高級開發(15)-使用eclipse開發STM32

在最起初的時候,我剛剛接觸linux上單片機的開發,最喜歡的就是 eclipse + arm-plug-in + arm-none-eabi 的開發環境,因爲這是在Linux上最接近於windows下keil、IAR等IDE的開發方式,然

原创 STM32高級開發(14)-使用CubeMX生成STM32工程

在我們瞭解libopencm3的使用後,發現libopencm3只適用於小型工程,其最大的特色只是在USB方面的使用方便,那麼在我們配置大型工程的時候有沒有一種更快捷的方式呢,顯然是有的。它就是CubeMX,ST官方出的神器,可以使得我們

原创 S3C6410開發(3)-編譯運行第一個流水燈程序

我們正式開始編程~ 編寫程序 由於我們是在純裸機上編程,沒有uboot之類的程序爲我們初始化硬件資源,所以我們要編寫一個帶有初始化功能的彙編文件。同時爲了直觀地感受到程序的運行,我們在裏面添加一個流水燈的小程序。在工作目錄新建一個 st

原创 STM32高級開發(17)-使用DFU方案

STM32 DFU 快速移植及使用教程 什麼是 DFU DFU全稱爲Device Firmware update,是ST官方推出的一個通過USB接口進行IAP升級的方案,同串口ISP一樣,他們都集成在了芯片內部的Bootloader區段,

原创 STM32高級開發(18)-使用VS Code搭建STM32開發環境

以前在伴隨着開發平臺的轉換中,我嘗試過各種各樣的開發環境,而在最近一段時間的開發中我使用了Visual Studio Code來作爲代碼編輯器,其優異的工程管理,超快的啓動速度,各種各樣功能強大的插件,使我立刻愛上了這個文本編輯器。但是在

原创 STM32高級開發(8)-鏈接器與啓動文件

最近休息了一下,中間斷斷續續在虛擬機上靠着記憶恢復了原來崩潰的虛擬機上80%的工作成果,還算過得去吧,完全丟失的也就是些不大重要的資料。今天新買的機械鍵盤也到貨了,不得不說順豐的工作人員好評,給過年假期裏仍在工作的商家和快遞員們點個贊。現

原创 STM32高級開發(16)-CMSIS DAP調試工程

最近公司的項目在等供應商的設備有點空閒的時間了,就折騰了下ARM官方開源的CMSIS DAP調試器的方案,用的是X893大神的方案,下面附上他的個人主頁和在GitHub上的項目鏈接(我是用的是其中stlinkv2.1的軟硬件方案): [h

原创 STM32高級開發(13)-Ubuntu下的串口助手minicom

在這麼長時間裏我們在Ubuntu上調試stm32,大家在使用串口的時候是不是一直都是在宿主機上的串口助手中查看串口信息呢?來回切換是不是很麻煩?那麼在這篇中我們就來介紹一下在Ubuntu下的串口助手,或者準確點說應該叫串口終端,它就是mi

原创 STM32高級開發(7)-淺析樣例工程的Makefile

不想動了/(ㄒoㄒ)/~~,感覺被掏空,昨天寫完第六節以後,開始把機械硬盤下新裝的虛擬機系統轉移到SSD裏,把原來用的Ubuntu14的虛擬機遷回機械。萬萬沒想到啊!!!轉移的時候不知道抽哪個風,把原來14的文件居然損壞了!!啊!,我還

原创 STM32高級開發(10)-搭架你自己的libopencm3工程

在上一篇中,我們介紹了下載和使用libopencm3固件庫的官方例程,同時我們也介紹了官方歷程中的makefile等文件結構和引用方式,不知道大家注意到沒有,實際上在我們使用的makefile中的目標裏,是有flash等通過調試器下載的操

原创 STM32高級開發(11)-使用GDB調試你的工程

在GNU編譯器中,GDB無疑起着無足輕重的位置,常言有道:寫工程3分靠寫,7分靠調。GDB作爲GNU編譯器下的標準調試工具,在我們的項目編寫即調試過程中會被平凡的使用到。而由於我們在IDE環境下嬌生慣養出來的習慣,我們可能不太容易上手一個

原创 STM32高級開發(5)-gcc-arm-none-eabi

在完成對ubuntu的基本操作和指令的學習後,我們下面正式的進入有關於我們stm32/ARM單片機的軟件安裝過程。首先我們就要介紹這個會貫穿我們整個開發過程中的軟件gcc-arm-none-eabi。 gcc-arm-none-eabi

原创 STM32高級開發(6)-makefile與調試器驅動

上一篇我們介紹了整套開發環境中的最重要的一環 :編譯工具鏈。而在這篇中我們會介紹與其配合使用的makefile與調試器驅動,將這些工具結合,我們所需要的開發環境就簡單的搭建完成了。最激動人心的:在這篇文章的最後我們將去嘗試編譯一個流水燈程

原创 STM32高級開發(9)-學習與編譯libopencm3-example

在前面的幾篇中我們爲大家介紹了在Linux下stm32開發環境的新特性和使用方式,可能大家覺得,我怎麼寫一個工程還要自己寫鏈接文件和啓動文件,是不是太不方便了點。那麼這篇中我會告訴大家其實並不是這樣的。在我們日常的一些小規模工程下我們是可