原创 指針、指針數組、數組指針。結構體指針。

指針(pointer)簡介      指針是一個值爲內存地址的變量      例如                          int year;                 year = 2016;             

原创 STM32系統時鐘配置及時鐘樹

參考資料:《 STM32F4xx 中文參考手冊》 RCC 章節。 STM32時鐘可大致分爲系統時鐘和其它時鐘兩大類,總共包含5個時鐘源 HSI(High Speed Internal Clock)、HSE(High Speed Exter

原创 #include指令

      當預處理器發現#include 指令時,會查看後面的文件名並把文件的內容包含到當前文件中,即替換源文件中的#include指令。相當於把被包含的文件的全部內容輸入到源文件#include指令所在的位置。#include指令有以

原创 工業標準 NRZ異步串行數據傳輸格式

NRZ (Non-return-to-zero Code),不歸零編碼。 在瞭解NRZ之前,我們先來了解一下RZ 編碼(Return-to-zero Code),即歸零編碼,所謂的歸零編碼就是在進行編碼時每傳輸完一位數據,信號電平就會返回

原创 STM32_USART 串口通訊詳解

對51單片機有了解的都知道51單片機的串口通訊工作原理,我們單片機使用的電平TTL電平,爲了使我們的的單片機與PC進行通信,就需要一個電平轉換芯片,把TTL電平轉換爲USB電平(使用的USB接口,如果使用的DB9接口,電平轉換芯片則爲TT

原创 SysTick_系統定時器實現流水燈

參考資料《 ARM Cortex™-M4F 技術參考手冊》-4.5 章節 SysTick Timer(STK) SysTick(系統滴答定時器),本質上就是一個內嵌在NVIC中的一個定時器,屬於內核中的一個外設,是一個24位的向下遞減的計

原创 STM32_EXTI外部中斷學習筆記

參考資料:《STM32F4xx中文參考手冊》系統配置控制器以及中斷和事件章節。 EXTI( External interrupt /evet controller) 之前接觸過51單片機的都瞭解到51單片機有兩個外部中斷 ,分別爲外部中斷

原创 STM32中斷及NVIC概述

         參考資料《STM32F4xx 中文參考手冊》第十章-中斷和事件、《 ARM Cortex™-M4F 技術參考手冊》-4.3 章節:NVIC 和 4.4章節:SCB—4.4.5的 AIRCR。            對51

原创 STM32時鐘

參考資料:《 STM32F4xx 中文參考手冊》 RCC 章節。 STM32時鐘可大致分爲系統時鐘和其它時鐘兩大類,總共包含5個時鐘源 HSI(High Speed Internal Clock)、HSE(High Speed Exter

原创 stm32實現GPIO輸入按鍵檢測

1、硬件設計 按鍵機械觸點斷開、閉合時,由於按鍵觸點的彈性作用,按鍵開關不會馬上穩定接通或一下就斷開,使用按鍵時就會產生下圖中的帶紋波信號,需要軟件消抖處理濾波 由於用軟件消抖處理濾波不方便輸入檢測,所以提出瞭如下帶有硬件消抖的電路。

原创 STM32 的位帶操作

位操作就是可以單獨的對一個比特位進行讀和寫,這個在51單片機中非常常見。51單片機中通過關鍵字sbit來實現位定義,STM32中則是通過訪問位帶別名區的地址來實現對某一位的操作。 例如51單片機中可以實現以下操作 #define LED

原创 如何新建stm32固件庫工程

1、首先先新建一個工程文件夾,在它之下再新建7個文件夾 DOC用於存放程序說明文件 Listing存放的是編譯器編譯時候產生的c/彙編/鏈接的列表清單 Output存放的是編譯產生的調試信息、hex文件、預覽信息、封裝庫等 Projec

原创 stm32f4固件庫函數點亮LED燈

我採用的實驗板硬件原理圖如下 這些LED燈的陰極都是與STM32的GPIO的引腳相連接,我們只需要控制對應的引腳輸出低電平,即可點亮LED燈,其中彩燈的陽極連接到的一個電路圖符 號“口口”,它表示引出排針,即此處本身斷開,須通過跳線帽連

原创 c語言中宏定義#define

預處理器指令#define和其他預處理器指令一樣,都是從#開始運行,到第一個換行符結束爲止,也就是說預處理器指令的長度僅限於一個邏輯行(C語言中以 ; 作爲語句的結束,不以行爲單位結束,當一行的內容太長不方便卸載一行時可使用反斜槓"\"作

原创 關於keil 編譯出現 warning: #1295-D: Deprecated declaration /函數/ - give arg types

在聲明函數時,如果該函數沒有參數就要在括號里加“void” 例如 函數定義 void LED_GPIO_Init() {         GPIO_InitTypeDef  GPIO_Init_Struct;         GPIO_I