原创 單片機簡單Log日誌封裝

 1、創建log.c文件 #include "log.h"  2、創建log.h文件 #ifndef __LOG_H_ #define __LOG_H_ #include "stm32l0xx_hal.h" #include

原创 48腳 STM32HAL庫ADC 高精度採集電池電量與芯片內部溫度方法 (使用內部參考電壓方案)

主控芯片:STM32L051C8T6 採用內部1.2V參考電壓,解決了測量電池電量小於3.0V以下檢測不準的問題。篇幅有點長,還需要各位看官慢慢閱讀。 基本上可以做到1.8V~5V之間的精準檢測電池電量。 1、原理圖          

原创 基於Clion IDE + STM32CubeMX搭建STM32開發環境(詳細介紹搭建過程)

 概述              由於本人之前開發過一段時間Android,一直想使用Jetbrains家族裏面其中一款開發工具來開發STM32,是否能像開發Android、Java、前端他們那樣,達到敏捷開發效果呢?當然是有的了。該款I

原创 TencentOS-tiny 內核基礎組件(十 八)- 字符流先入先出隊列

一、內核基礎組件 1、字符流先入先出隊列 概述 字符流先入先出隊列,提供的是一個面向字符操作的環形隊列實現,提供了基本的字符流入隊出隊操作。本質上就是環形隊列中元素爲字符(單字節長度)時的特例,實際上字符流先出先出隊列底層的實現就是環形隊

原创 TencentOS-tiny 時間管理(十 四)

一、時間管理 概述 時間管理,提供了一族與時間相關的函數,可以獲取/設置系統時鐘滴答數(systick)、systick與毫秒單位之間互相轉化、按毫秒、牆上時鐘等單位進行任務睡眠的功能。 API講解 編程實例 1、配置每秒鐘的系統滴答數T

原创 TencentOS-tiny 內核基礎組件(十 七)- 環形隊列

一、內核基礎組件 環形隊列 概述 環形隊列本質上就是支持先入先出操作的環形buffer,是系統的一個基礎組件,通常用來作爲實現上層機制的底層數據容器。 API講解 編程實例 1、編寫main.c示例代碼: /* USER CODE EN

原创 移植 TencentOS-tiny 實時操作系統(一)

                                      TencentOS tiny 概述      閒暇之時,移植TencentOS-tiny玩玩,聽說這個系統佔用資源比較少。好了,我們正面瞭解一下這個RTOS系統。

原创 TencentOS-tiny 內核基礎組件(十 九)- 二項堆

一、內核基礎組件 二項堆 概述 此組件用來內部實現優先級隊列,不推薦用戶使用。

原创 TencentOS-tiny 時間管理(十 六)- 時間片輪轉機制

一、時間管理 時間片輪轉機制 概述 TencentOS tiny操作系統內核是一個搶佔式內核,搶佔式內核的特點是,如果最高優先級的任務不放棄CPU(調用tos_task_delay、tos_task_yeild等主動放權,或者任務間同步通

原创 TencentOS-tiny 任務間通信(九)- 郵箱隊列

一、任務間通信 郵箱隊列 概述 消息隊列傳遞的是指針,郵箱隊列傳遞的是大片的內存數據。 API講解 編程實例 1、在tos_config.h中,配置郵箱隊列組件開關TOS_CFG_MAIL_QUEUE_EN: #define TOS_CF

原创 單片機-結構體函數指針使用方法

概述        C語言結構體對函數指針封裝示例(面向對象思想寫法) 1、示例: #include <stdio.h> int i, j; struct DATE{ int year; char month;

原创 TencentOS-tiny 時間管理(十 五)- 軟件定時器

一、時間管理 軟件定時器 概述 軟件定時器提供了一套從軟件層次實現的定時器機制,相對應的概念是硬件定時器。用戶可以創建一系列的軟件定時器,並指定軟件定時器到期的條件以及執行回調,當軟件定時器到期時會執行註冊的回調。 通常來說,用戶註冊的軟

原创 TencentOS-tiny 功耗管理 (二十 二)- tickless(低功耗)

一、功耗管理 tickless 概述 TencentOS tiny的tickless機制提供了一套非週期性時鐘的方案,在系統無需systick驅動調度的情況下,停掉systick。 初級功耗管理方案下,因爲還有系統systick的存在,因

原创 STM32單片機裸機程序-高級實現實時性處理方法

概述         這篇文章是對剛剛學習單片機的小夥伴們,提的一些處理技巧思維。(我在項目上經常使用這樣的處理思路) 現在舉個栗子,應用場景是這樣的,比如:在while(1)中在處理一些裸機,然後碰巧又在延時時候,當你又有其他事件(這個

原创 基於Visual Studio IDE+Qt開發環境搭建(詳細介紹搭建過程)

概述        有幾年時間,沒去玩QT了,已經忘了差不多,在此重新開始撿回來,在這順便給自己做個記錄,也方便一些好學的盆友們觀閱。   一、環境配置:  Visual Studio 2017 + Qt Creator + Win10