使用freedom-k64開發板,嘗試使用暫存器絕對位址進行io控制,控制protb21輸出。
暫存器位址的編寫和定義
配置gpiob的時鐘,這是與51使用暫存器控制的最大區別之一。#define port_b_pdor *(volatile uint32_t*)(0x400ff040u)
#define port_b_psor *(volatile uint32_t*)(0x400ff044u)
#define port_b_pddr *(volatile uint32_t*)(0x400ff054u)
#define port_b_pcr21 *(volatile uint32_t*)(0x4004a054u)
配置gpiob21的引腳功能,也就是復用功能,有的引腳存在好多種功能,所以就需要選擇功能,這裡選擇gpio功能,每個引腳功能都是乙個32位暫存器來控制。
配置gpiob21的資料方向,輸入輸出方向.
#include "include.h"
#define port_b_pdor *(volatile uint32_t*)(0x400ff040u)
#define port_b_psor *(volatile uint32_t*)(0x400ff044u)
#define port_b_pddr *(volatile uint32_t*)(0x400ff054u)
#define port_b_pcr21 *(volatile uint32_t*)(0x4004a054u)
#define port_sim 0x40047000u
#define scgc5_offset 0x1038u
#define scgc5_b_mask (0x400u)
int main(void)
}
GPIO暫存器描述
gpio暫存器描述 stm32參考手冊中文 p75 1 埠配置低暫存器 gpiox crl x a e 2 埠配置高暫存器 gpiox crh x a e 3 埠輸入資料暫存器 gpiox idr x a e 這些位為唯讀並只能以字 16位 的形式讀出。讀出的值為對應i o口的狀態。4 埠輸出資料暫...
控制暫存器
控制暫存器用於控制和確定cpu的操作模式 cr0 cr1 cr2 cr3 cr4 cr1保留,cr3是頁目錄表物理基址或頁目錄指標表物理基址。1 pe cr0的位0是啟用保護 protection enable 標誌。pe 1保護模式 pe 0 實位址模式 這個標誌僅開啟段級保護,而並沒有啟用分頁機...
80386控制暫存器
控制暫存器 80386有4個32位控制暫存器,分別命名為cr0 cr1 cr2 cr3。但cr1被保留,供今後開發的處理器使用,在80386中不能使用cr1,否則將引起無效指令操作異常。cr0包含指示處理器工作方式的控制位,包含啟用和禁用分頁管理機制的控制位,包含控制浮點協處理器操作的控制位。cr2...