原创 KEA128 移植/嵌入Free_RTOS

話不多說,直接上步驟: 1.準備一個KEA128的空工程,如LED閃爍工程 2.去除工程中的PendSV_Handler和SVC_Handler,以免報錯重定義 3.將Free_RTOS相關文件複製入系統,這裏我是從原子的工程裏面複製來的

原创 電感知識總結

1.電感相對於電容,其阻礙的是電流,流過電感的電流不能突變(在磁飽和之前) 2.電感和電容一樣,是一個儲能元件,在電感達到磁飽和之前會一直儲存能量。流過電感的電流越大,其儲存的能量越大,直到達到飽和電流,電感儲存的能量達到峯值。 3.感應

原创 當系統提示“此磁盤/驅動器有問題,需要掃描並修復”時千萬不要點修復

    當插入U盤或者移動硬盤時,系統提示“此磁盤/驅動器有問題,需要掃描並修復”時千萬不要點修復,否則有可能會導致你的部分文件丟失。     2020年6月13日,筆者親歷:本來想備份移動硬盤數據到電腦的,結果插入硬盤系統提示“此磁盤/

原创 DXP快速覆銅(閉合曲線覆銅)

    一般覆銅時會需要沿着板子邊界拉一個閉合曲線,這樣如果板子外形比較規則還好,如果外形不規則且特別還有各種曲線的話拉起來就很喫力,所以本文介紹一種快速覆銅的方式,即利用板子邊界曲線快速覆銅: 1.假設板子邊界用的是Keep-out層,

原创 STM32 堆、棧、內存分配-精華詳解

    STM32內存分爲3塊區域:全局/靜態變量區、棧區、堆區 其中全局/靜態變量區用於存放全局/靜態變量(包括指針變量), 棧區用於存放當前運行的函數及其中定義的局部變量和程序指針等, 堆區用於存放動態申請的內存,即malloc的內存

原创 電路抗干擾設計——非常詳細

    抗干擾設計的基本任務是系統或裝置既不因外界電磁干擾影響而誤動作或喪失功能,也不向外界發送過大的噪聲干擾,以免影響其他系統或裝置正常工作。 因此提高系統的抗干擾能力也是該系統設計的一個重要環節。 電路抗干擾設計原則彙總: 1、電源線

原创 stm32 代碼加密

1.設置讀寫保護     設置保護: if (FLASH_GetReadOutProtectionStatus()!=SET) { FLASH_ReadOutProtection(ENABLE); FLASH_Loc

原创 51單片機軟件復位函數

51單片機無自帶的看門狗,沒有提供軟件復位的函數和機制,要想實現軟件復位,只能通過強制將PC指針指到0x0000位置, 通過以下函數將PC指針強制指到0x0000: void reset(void) { ((void (code *)

原创 cJSON移植到STM32編譯無問題但是輸出不對問題

cJSON運行需要比較大的堆棧空間,將 Heap_Size 改成0x1000就好了 即:Heap_Size       EQU     0x00001000

原创 輸入阻抗、輸出阻抗、阻抗匹配和特性阻抗

1.輸入阻抗:輸入阻抗是指一個電路輸入端的等效阻抗.在輸入端上加上一個電壓源U,測量輸入端的電流I,則輸入阻抗Rin就是U/I.你可以把輸入端想象成一個電阻的兩端,這個電阻的阻值,就是輸入阻抗. 輸入阻抗跟一個普通的電抗元件沒什麼兩樣,它

原创 函數和宏函數的區別

某一個功能可以用函數來實現,也可以用宏定義函數來實現,如下宏函數實現比較大小功能: #define MAX(A,B) {(A)>(B)?(A):(B)} 同樣的功能也可以使用以下函數來實現: int Max(int a,i

原创 關於STM32 CAN的過濾器/濾波器

1.在設置CanTxMsg.StdId時注意需要將其右移一位,比如如下濾波器配置: CAN_FilterInitStructure.CAN_FilterNumber=0; CAN_FilterInitStructure.CAN_Filt

原创 嵌入式代碼穩定/抗干擾性增強措施

  1.瞭解自己程序大概佔用的堆棧大小,設置足夠的堆棧餘量,防止堆棧溢出 2.儘量少用大數組,必要時可以將一個大數組分成幾個 3.對於關鍵的變量用 Volatile 關鍵字修飾,尤其是會在多個線程/中斷中調用的變量,否則你很可能取到錯誤的

原创 CC2530 實現無線串口

用CC2530實現無線串口可以說是最簡單的了,話不多說直接看代碼:1.初始化void RF_Init(void){  FRMFILT0  =0x0C;                //靜止接收過濾,即接收所有數據包       TXPO

原创 IAR常用快捷鍵設置

我主要用到的就是三個快捷鍵:代碼批量加註釋(//)、代碼批量解除註釋、代碼自動對齊,實際上我也就只修改了這三個快捷鍵:快捷鍵設置在Tools->Option->Key Bindings裏面,Menu選項卡選擇Edit,這裏是代碼編輯主要用