/* @filename
- @version1.0
- @date 2021 2.20 14:24
- @brief本次例程是用操控暫存器的方法操控STM32的GPIO用到的開發板是NECLEO_F103RB,操控PA5輸出高電平讓LED亮,希望能對閱讀文章的你有些幫助 O(∩_∩)O
- @author :HGP
/
/
GPIOA_CRL 0x4001 0800
GPIOA_CRH 0x4001 0804
GPIOA_IDR 0x4001 0808
GPIOA_ODR 0x4001 080c
GPIOA_BSRR 0x4001 0810
GPIOA_BRR 0x4001 0814
向記憶體的某個地址寫入16
(unsigned int)0x3333 3333 =16
*/
#include “stm32f10x.h”
#define GPIOA_CRL (unsigned int)0x40010800
#define GPIOA_CRH (unsigned int)0x40010804
#define GPIOA_IDR (unsigned int)0x40010808
#define GPIOA_ODR (unsigned int)0x4001080c
#define GPIOA_BSRR (unsigned int)0x40010810
#define GPIOA_BRR (unsigned int)0x40010814
#define RCC_GPIOA (unsigned int)0x40021018
//在通過資料手冊給PA5引腳配置引數
int main(void)
{
RCC_GPIOA |= (1<<2);
GPIOA_CRL |= (1<<20);
GPIOA_ODR |= (1<<5);
while(1);
}
void SystemInit()//這里的SystemInit函式是為了讓程式不報錯
{
}
/*課堂筆記 :
1.基本思路:通過暫存器的地址操控GPIO的狀態
GPIO通用的的狀態暫存器有GPIO_CRL,GPIO_CRH,GPIO_ODR,GPIO_IDR等
除此之外還要有配置APB2的使能暫存器APB2ENR,因為IO口外設是掛在APB2之上的,
向某一位寫入0的操作:GPIO_CRH &= ~(1《x)
寫入1的操作: GPIO_CRH |= (1《x)
x是具體想要移動的位數
2 時鐘框圖是很重要的,如果想要開啟某個外設,則需要提前打開外設時鐘并配置其速度,這些都可以在時鐘圖中看出
默認情況下systick系統的時鐘是HSI 8MHz,如果想要配置成72Mhz或者其他,則需要通過配置HSE,LSE,LSI等,
配置時鐘關鍵得有兩個暫存器,一個是時鐘的分頻暫存器,另一個是選擇時鐘線路的暫存器,
通過配置即可得到想要的外設的時鐘速度和系統時鐘,
*/
? 2021 GitHub, Inc.
服務條款
隱私
安全
狀態
Docs
聯系 GitHub
價格
API
培訓
博客
關于
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264217.html
標籤:其他
下一篇:ESP32 開發筆記(二) 開發環境搭建 Windows10 Visual Studio 2019 開發ESP32
