一直想寫個類似uCOS的OS,近段時間考研復(fù)習(xí)之余忙里偷閑,總算有點成果了。言歸正傳,我覺得OS最難的部分首先便是上下文切換的問題,他和MCU的架構(gòu)有關(guān),所以對于不同的MCU,這部分需要移植。一旦這個問題解決了
0.前言 去年(2013年)的整理了LwIP相關(guān)代碼,并在STM32上“裸奔”成功。一直沒有時間深入整理,在這里借博文整理總結(jié)。LwIP的移植過程細節(jié)很多,博文也不可能一一詳解個別部分只能點到為止。 【本文要點】 【1】
搞過全橋電機驅(qū)動的都知道控制死區(qū)時間的重要性,一般解決方案是搭建電路控制死區(qū)時間或直接使用全橋驅(qū)動芯片。 而STM32擁有兩個高級定時器,可以直接輸出具有調(diào)節(jié)死區(qū)時間的PWM。 現(xiàn)以TIM1通道1輸出占空比為50%,死
AT24Cxx系列EEPROM是由美國Mcrochip公司出品,1-512K位的支持I2C總線數(shù)據(jù)傳送協(xié)議的串行CMOS E2PROM,可用電擦除,可編程自定時寫周期(包括自動擦除時間不超過10ms,典型時間為5ms)的。串行E2PROM一般具有兩種寫入
(1)Flash的簡介 不同型號的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字節(jié),最大的則達到了1024K 字節(jié)。STM32F103ZET6 的 FLASH 容量為 512K 字節(jié),屬于大容量產(chǎn)品。 STM32 的閃存模塊由:主存儲器、信
首先,我是看著這位博主的文章受到的啟發(fā),進而加深了自己對USART的理解。下面是自己改裝并實驗過的程序。原文:http://www.cnblogs.com/greatwgb/archive/2011/07/28/2119350.html1.串口的基本概念在STM32的參考手冊
使用LwIP容易,但要想使用LwIP獲得好的的速度。LwIP做一個如下修改,會讓TCP網(wǎng)絡(luò)速度好一些:lwipopts.h文件/* TCP Maximum segment size. */#define TCP_MSS 2048//1024/* TCP sender buffer space (by
STM32利用庫函數(shù)編程庫函數(shù)是STM32生產(chǎn)廠家封裝好的函數(shù)庫,方便用戶編程。USART 庫函數(shù)USART庫函數(shù)包括三種初始化函數(shù),1—缺省值初始化,2—普通初始化,3—結(jié)構(gòu)體類初始化,一般情況下,我們選擇第三種初始化方式
有時候,我們所寫代碼的具體實現(xiàn)方法不想讓其他人知道。這時,可以用Keil對代碼進行封庫。注意:在封庫之前,必須確保整個工程代碼能夠編譯通過。下面舉例說明操作步驟:想要把工程中“firmware.c”文件封裝成庫文件
一。開發(fā)環(huán)境和固定庫版本二。準(zhǔn)備工作三。建立工程模板1. 建立一個Template的文件夾2.在Template文件夾下建立下面3個文件夾CORE 用來存放核心文件和啟動文件, OBJ 是用來存放編譯過程文件以及 hex 文件, STM32F10
簡介不同的開發(fā)板的原理圖結(jié)構(gòu)也不盡相同,筆者在這里使用野火的MINI-V3(F103VET6)簡易開發(fā)板對GPIO口的設(shè)置做一個簡單的介紹,并實現(xiàn)按鍵控制LED燈的亮滅。方便讀者可以快速熟悉并靈活應(yīng)用。原理圖分析首先我們來
1、創(chuàng)建的cJSON對象root,沒有cJSON_Delete(root);執(zhí)行一次就死機了2、cJSON解析的root得到的字符串char *str,free(str),執(zhí)行n次后就返回信息錯誤了。改成myfree(str)后運行正常了。
STM32中GPIO的配置風(fēng)格和以往研究的MCU有很大的不同,研究了好一段時間才搞通。typedef enum{ GPIO_Mode_AIN = 0x0,GPIO_Mode_IN_FLOATING = 0x04,GPIO_Mode_IPD = 0x28,GPIO_Mode_IPU = 0x48,GPIO_Mode_Out_OD = 0x
當(dāng)從虛擬串口到真實串口發(fā)數(shù)據(jù)時,沒有錯誤,但發(fā)送一個稍微大一點的文件時(如1M),誤碼率很高。不知是為什么?其中:int main(void){#ifdef DEBUG debug();#endif Set_System(); Set_USBClock(); USB_Interrupts
首先來看模塊圖在某寶上一搜就能找到,關(guān)于它的使用也是非常簡單,先看數(shù)據(jù)手冊里面需要注意的幾點1 基本的參數(shù)在實際測試當(dāng)中,最大測量三米多的距離還是可以,最小距離我沒有做測試,我測的最小距離是50厘米,再往
STM32和ST-link仿真器的接口連接,采用SWD模式
上圖的最右端為I/O引腳,左端的器件位于芯片內(nèi)部。I/O并聯(lián)了兩個用于保護的二極管。注:部分圖片內(nèi)容來自《STM32庫開發(fā)實戰(zhàn)指南》
脈沖調(diào)制(PWM)是利用微處理器對數(shù)字輸出來對模擬電路的一種非常有效的技術(shù)。簡單點說就是對確定頻率的信號,調(diào)整其占空比。stm32的定時器除了TIM6和TIM7外,其他定時器都可以產(chǎn)生PWM輸出。其中高級定時器TIM1和TIM
1、NVIC_InitStructure結(jié)構(gòu)體在misc.h文件中進行定義,編程時可查看。關(guān)于NVIC的函數(shù)都在misc.h文件中進行定義。2、中斷服務(wù)函數(shù)入口名稱在startup_stm32f10x_hd.s文件中。3、 中斷結(jié)構(gòu)參數(shù)NVIC_InitStructure.NVIC_
1、keil編譯的三個按鍵的功能A、第一個按鈕:Translate就是翻譯當(dāng)下修改過的文件,說明白點就是檢查下有沒有語法錯誤,并不會去鏈接庫文件,也不會生成可執(zhí)行文件。B、第二個按鈕:Build就是編譯當(dāng)下修改過的文件,它