原创 C語言之volatile關鍵字的常用特點

在嵌入式項目開發過程中,我們經常遇到_IO,_I,_O等前綴在類型之前,在常用的單片機開發中可以查看到這些符號的本身是代指volatile關鍵字,關於_IO 在系統級應用中的深入含義及用法暫且不做介紹,這裏簡單記錄一下裸機開發過

原创 調試小細節 之 ADC採樣值出錯

首先簡單介紹一下ADC相關基本知識,本文引用正點原子開發指南的STM32F103系列MCU舉例教程介紹 STM32F103 擁有 1~3 個 ADC(STM32F101/102 系列只有 1 個 ADC),這些 ADC 可以

原创 關於在樹莓派上搭建git服務器的權限問題

最近在一個樹莓派4B+上搭建一個git倉庫給公司做代碼版本管控,之前在網上看了教程很簡單(用樹莓派搭建GIT私有服務器),可是自己操作的時候一直出現無法clone和push的問題,一直提示沒有權限或者文件問題,經過反覆測試發現問題

原创 電機系統標幺化的好處

電機系統標幺化的好處: 對於不同功率、電壓值的設備標幺值在一定範圍內,具有可比性,而測量值則隨之變化; 定點DSP控制:可有效防止數據溢出。 各個基值的選取方式如下:

原创 STM32之模擬I2C通信驅動代碼

/****************************************************************************** Name: i2c.c Description: I2

原创 電機常用術語解釋

從事無刷電控工作以來,接觸不少電機方面的術語,小結一下 極對數(P):電機轉子中N-S極的對數 相數(m):電機繞組個數 電角度(θe)/機械角度(θ):θe = P * θ 電角頻率(ωe)/機械角頻率(Ω):ωe = P

原创 stm32兩種常見的串口接收方式

最近遇到一直增加功能和調試中不知不覺把帶串口接收DMA的串口資源給用完了,換成不帶DMA的串口接收數據有點不一樣的地方,記錄一下,還有以後的開發中不能老是買通信都是串口的模塊,模塊多的時候,不利於擴展 串口1+DMA接收數據的基

原创 STM32 時鐘源和RCC 配置

STM32一共有5個時鐘源,分別是HSI HSE LSI LSE PLL ①HSI 是高速內部時鐘, RC 振盪器,頻率爲 8MHz ; ②HSE 是高速外部時鐘,可接石英 / 陶瓷諧振器,或者接外部時鐘源,頻率範圍是 4

原创 隊列——循環隊列、鏈式隊列介紹和C語言實現源碼

本文大量飲用了相關公衆號和博客圖片和代碼,本人只做整理總結,便於學習和使用,如有涉及到相關作者原創內容,請聯繫,本人將及時刪除。 目錄隊列1、基本概念:1.1 定義:1.2 概念補充:1.2.1 數組1.2.2 鏈表2、 隊列

原创 C語言之聯合體Union

C語言之聯合體Union 共用體是一種特殊的數據類型,允許您在相同的內存位置存儲不同的數據類型。您可以定義一個帶有多成員的共用體,但是任何時候只能有一個成員帶有值。共用體提供了一種使用相同的內存位置的有效方式。 定義共用體Un

原创 調試小細節之數據類型佔用字節

最近手裏有一款溫溼度傳感器AM2105,通信接口爲單總線通信,介紹如下: 當我按照時序正確的讀取四十位數據後,按照高位左移八位或上低八位得出實際數據,但是結果卻是錯誤的,而且多次查找都沒有找到問題點; 程序如下: /******

原创 JScope_V510d 可以圖形化顯示的調試助手

在嵌入式日常開發過程中經常會用到各種各樣的調試助手,最常用的就是串口助手,還有RTT或者在線仿真等,但是這些工具都需要加代碼或者達不到我們想要的效果,最近學到了一個無需添加任何代碼,無需仿真,只要有J-LINK連接到正常運行的設備

原创 關於_map文件的全面解析

引用鏈接:https://www.strongerhuang.com/Keil/Keil系列教程12_map文件全面解析.html 這篇文章介紹的比較全面,摘錄部分我認爲比較重要的如下: 什麼是map文件? 簡單的說:map文件是

原创 關於keil常見問題解決方法記錄error: #268: declaration may not appear after executable statement in block

error: #268: declaration may not appear after executable statement in block 因爲keil 默認編譯標準是C89,解決方法: 點贊 3

原创 關於串口初始化失敗,寄存器全爲0的兩種錯誤

串口是我們開發過程中最常用的通信接口之一,今天在開發的時候發現串口1和2都可以正常的初始化,唯獨串口3無論怎麼初始化寄存器都都全爲0,在網上查找的時候發現一個兄弟是搞錯芯片了,他的芯片沒有串口3所以無法初始化鏈接在此但是我用的芯片