原创 ucos調試工具ucprobe的使用心得

ucprobe是一種在線調試ucos系統的一種工具,可以實時的查看各個任務堆棧的使用情況,各個變量等等,形象、直接、方便、高效。關於ucprobe的具體可以實現哪些功能,需要參考ucprobe manual。 首先關於ucprobe的簡單

原创 MDK中常見編譯警告和錯誤的總結及部分的解決方法

1、function "fabs" declared implicitly 說明調用fabs的這個文件中沒有對fabs這個函數進行聲明,因此在頭文件中包含該函數的聲明即可。即在頭文件中添加#include "math.h"即可。

原创 MDK工具運用

1、MDK中如何調整字體大小,以下鏈接中的方法親測有效: https://jingyan.baidu.com/album/a3761b2bf4d2621577f9aa7e.html?picindex=2

原创 stm32串口採用循環隊列+DMA方式接收數據調試總結

最近在項目中給串口的接收添加DMA,遇到的問題: 1、“配置好”DMA後,但是DMA不工作 初始化串口1爲接收、DMA1的通道3,並使能相應的外設,外設的時鐘也全部打開,但是通過調試發現,DMA就是不傳輸數據。 問題點:忽視了DMA的請求

原创 如何在keil中將文件封裝成Lib庫

  1、如果一份文件已經在整個工程中發揮出了我們期待的作用,現在想要將其封裝成庫,則可以在已經成型的工程文件中將不需要編譯的文件從工程全部移出掉,只留下我們需要封裝的文件,如下圖   2、另外將頭文件路徑中不需要的頭文件路徑也去除掉,只

原创 UCOSII就緒表學習總結

1、ucos2採用搶佔式的實時調度算法,調度原則:在每一個systic中斷中,系統都要判斷當前系統64個任務中,所有處於就緒態的任務裏,誰的優先級最高就去執行誰。 2、就緒表設計。 自己想象設計就緒表: u8 rdyTbl[8]   //

原创 基礎鞏固

20190515  23:25 1、串口通訊 戰艦stm32板載兩個串口,一個是USB串口,一個RS232串口,實現功能:stm32利用USB串口和上位機通訊。stm32可以發送數據給上位機串口調試助手顯示,通過串口調試助手發送數據給st

原创 指針和常量,坐值和右值

指針和常量的誤區 假定變量a的存儲地址是100,那麼表達式:*100=25;代表的含義是什麼?如果認爲代表的含義是a=25,那就錯誤了。這句話本身是非法的。因爲100屬於整型,而間接訪問操作符只能訪問指針類型的表達式。如果操作者確實想把2

原创 串口+DMA接受不定長數據

工作中經常會遇到串口通信,並對交互的數據進行處理。經常用到的是通過不停的產生串口接收中斷,然後對數據做處理。,這樣做的弊端就是,不停的會產生串口接受中斷。中斷請求不但使CPU停下來,而且要CPU執行中斷服務程序爲中斷請求服務,這個請求包括

原创 如何方便快速的將一個float類型的數據轉化爲char類型從而通關串口將其發送出去

在工作中遇到一個問題,計算出了一個float類型的數據,然而和上位機的通信協議是按照字節一個個發送出去的。剛開始的想法是使用移位的方法,將float類型的數據存儲到字符串數組中去。現在可以使用聯合體將數據方便快速的轉化爲單個字節,從而發送

原创 關於FSMC的地址操作

在看正點原子FSMC驅動TFTLCD屏的相關資料時,有一處地址操作的代碼不是很懂: ////使用 NOR/SRAM 的 Bank1.sector4,地址位 HADDR[27,26]=11 A10 作爲數據命令區分線        注意 1

原创 ucosiii中內建消息隊列

OSTaskQPost()通過一個任務的內建消息隊列向任務發送消息,同外置消息隊列一樣,一條消息就是一條指針。 OSTaskQPend()用來請求消息,讓任務直接接受從其他任務或者ISR中發送過來的消息。函數的返回值就是消息的位置。 可以

原创 關於stm32軟復位的一些知識點蒐集

最近產品要加軟復位的功能,在網上搜集了一下,有以下結果: void Sys_Soft_Reset(void) {       SCB->AIRCR =0X05FA0000|(u32)0x04;       }  ,這樣的一個函數就可以實現

原创 再論sizeof 和strlen的區別

我們能常在用到 sizeof 和 strlen 的時候,通常是計算字符串數組的長度  從這個例子可以看得很清楚兩者的區別: char str[20]="0123456789";  int a=strlen(str); //a=10; >>

原创 結構體型二維數組的傳遞及運算

實際工作中遇到的關於結構體型二維數組的疑問點及BUG現在總結如下: 定義一個結構體: typedef struct energyandvol {     float a0;                       float b0;