国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

STM32學(xué)習(xí)筆記 第二章 STM32資源介紹

G9YH / 1874人閱讀

摘要:總線掛載的外設(shè)有等。外設(shè)地址映射片上外設(shè)區(qū)分為三條總線,根據(jù)外設(shè)速度的不同,不同總線掛載著不同的外設(shè),掛載低速外設(shè),和掛載高速外設(shè)。

第二章 STM32資源介紹

2.1 芯片選型

STM32-F1系列(如圖2-1):
基礎(chǔ)型,主頻為72M(內(nèi)核為cortex-M3),CPU位數(shù)=32。
我們所用的芯片是STM32F103vet6
STM32表示產(chǎn)品的類型,以STM32F103VET6為例
F表示通用系列的子系列
103代表增強(qiáng)型系列
V代表的引腳數(shù)100引腳
E代表內(nèi)嵌flash數(shù)6代表32K字節(jié)Flash,8代表64K字節(jié)Flash,B代表128K字節(jié)Flash,C代表256K字節(jié)Flash,D代表384K字節(jié)Flash,E代表512K字節(jié)Flash。
T代表封裝其中H代表BGA封裝,T代表LQFP封裝,U代表VFQFPN封裝。
6這一項(xiàng)代表工作溫度范圍,其中6代表-40——85℃,7代表-40——105℃。

圖2-1
APB1總線掛載的外設(shè)有:DAC、PWR、BKP、bxCAN、USB、I2C2、I2C1、UART5、UART4、USART3、USART2、SPI3/I2S、SPI2/I2S、IWDG、WWDG、RTC、TIM7、TIM6、TIM5、TIM4、TIM3、TIM2等。
APB2總線掛載的外設(shè)有:ADC1、ADC2、ADC3、USART1、SPI1、TIM1、TIM8、GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG、EXT、IAFIO等。
APB1:
DAC:數(shù)模轉(zhuǎn)化
PWR:電源功耗控制
BKP:備份數(shù)據(jù)
BxCAN:CAN總線是一種通信方式。STM32主要負(fù)責(zé)程序的運(yùn)行,而CAN總線只是一種通信協(xié)議。STM32之間的通信可以通過CAN總線進(jìn)行數(shù)據(jù)交換
USB 虛擬接口
I2C 串行通信協(xié)議,i2c接口
UART 調(diào)試串口
USART通用同步/異步接收器
SPI串行外設(shè)接口
IWDG獨(dú)立看門狗
WWDG 窗口看門狗
RTC實(shí)時(shí)時(shí)鐘
TIM 定時(shí)器
APB2:
ADC模數(shù)轉(zhuǎn)換
GPIO(abcdef)
EXT 外部中斷事件控制器

2.2 STM32存儲映射

存儲器映射是指把芯片中或芯片外的FLASH,RAM,外設(shè),BOOTBLOCK等進(jìn)行統(tǒng)一編址。即用地址來表示對象。這個(gè)地址絕大多數(shù)是由廠家規(guī)定好的,用戶只能用而不能改。用戶只能在掛外部RAM或FLASH的情況下可進(jìn)行自定義。

圖2-2
存儲器Block0內(nèi)部區(qū)域功能劃分
①選項(xiàng)字節(jié):用于配置讀寫保護(hù)、BOR級別、軟件/硬件看門狗以及器件處于待機(jī)或停止模式下的復(fù)位。當(dāng)芯片不小心被鎖住之后,我們可以從RAM 里面啟動來修改這部分相應(yīng)的寄存器位。地址范圍為:0x1FFF F800 - 0x1FFF F80F。
②系統(tǒng)存儲器:里面存的是ST出廠時(shí)燒寫好的isp自舉程序(即Bootloader),用戶無法改動。串口下載的時(shí)候需要用到這部分程序。地址范圍為:0x1FFF F000- 0x1FFF F7FF。
③FLASH:我們的程序就放在這里。地址范圍為:0x0800 0000 ~ 0x0807 FFFF (512KB)。
④取決于BOOT引腳,為FLASH、系統(tǒng)存儲器、SRAM的別名。地址范圍為:0x0000 0000 ~ 0x0007 FFFF。
⑤其他為預(yù)留。
儲存器Block1內(nèi)部區(qū)域功能劃分
Block1用于設(shè)計(jì)片內(nèi)的SRAM。我們使用的STM32F103VET6芯片的 SRAM是64KB,Block1內(nèi)部區(qū)域的功能劃分SRAM(64KB)地址范圍為:0x2000 0000 ~0x2000 FFFF,其他預(yù)留。
內(nèi)部 SRAM 區(qū)的大小是 512MB,用于讓芯片制造商連接片上的SRAM,這個(gè)區(qū)通過系統(tǒng)總線來訪問。在這個(gè)區(qū)的下部,有一個(gè)1MB的區(qū)間,被稱為“位帶區(qū)”。該位帶區(qū)還有一個(gè)對應(yīng)的、32MB的“位帶別名(alias)區(qū)”,容納了8M個(gè)“位變量”(對比8051的只有128個(gè)位變量)。位帶區(qū)對應(yīng)的是最低的1MB地址范圍,而位帶別名區(qū)里面的每個(gè)字對應(yīng)位帶區(qū)的一個(gè)比特。位帶操作只適用于數(shù)據(jù)訪問,不適用于取指。通過位帶的功能,可以把多個(gè)布爾型數(shù)據(jù)打包在單一的字中,卻依然可以從位帶別名區(qū)中,像訪問普通內(nèi)存一樣地使用它們。
儲存器Block2內(nèi)部區(qū)域功能劃分:
Block2用于設(shè)計(jì)片內(nèi)的外設(shè),根據(jù)外設(shè)的總線速度不同,Block被分成了 APB(APB1和APB2)和AHB兩部分,Block2內(nèi)部區(qū)域功能劃分:
①APB1總線外設(shè),地址范圍為:0x4000 0000 ~ 0x4000 77FF;
②APB2總線外設(shè),地址范圍為:0x4001 0000 ~ 0x4001 3FFF;
③AHB總線外設(shè),地址范圍為:0x4001 8000 ~ 0x5003 FFFF;
存儲器Block2是片上外設(shè)區(qū)域,它們以四個(gè)字節(jié)為一個(gè)單元,共32bit,每一個(gè)單元對應(yīng)不同的功能,當(dāng)我們控制這些單元時(shí)就可以驅(qū)動外設(shè)工作。
如果直接驅(qū)動地址的話會非常麻煩并且不具有通用性。
比如GPIOB端口的輸出數(shù)據(jù)寄存器ODR的地址是0x4001 0C0C,寄存器是32bit,低16bit有效,對應(yīng)著16個(gè)外部 IO,寫0/1對應(yīng)的的IO則輸出低/高電平。

2.3 STM32外設(shè)地址映射

片上外設(shè)區(qū)分為三條總線,根據(jù)外設(shè)速度的不同,不同總線掛載著不同的外設(shè),APB1掛載低速外設(shè),APB2和AHB掛載高速外設(shè)。

圖2-3

圖2-4

圖2-5

圖2-6

圖2-7

寄存器地址 = 基地址 + 偏移地址
GPIOB_CRL = 0x4001 0C 00UL
GPIOB_CRH = 0x4001 0C 04UL
GPIOB_IDR = 0x4001 0C 08UL
GPIOB_ODR = 0x4001 0C 0CUL
GPIOB_BSRR = 0x4001 0C 10UL
GPIOB_BRR = 0x4001 0C 14UL
GPIOB_LCKR = 0x4001 0C 18UL
由此推出
GPIOA_CRL =0x4001 08 00UL
GPIOC_CRL =0x4001 10 00UL

c語言最小類型:字節(jié)類型,位bit,32bit=4字節(jié)
連續(xù)存儲節(jié)省空間
定義的結(jié)構(gòu)體和寄存器大小一一對應(yīng),將基地址與結(jié)構(gòu)體綁定,操作結(jié)構(gòu)體相當(dāng)于操作寄存器
結(jié)構(gòu)體指針用‘->’賦值,普通變量用‘.’賦值,在程序中多用指針尋址,需認(rèn)真學(xué)習(xí)
HES外部高速時(shí)鐘,HSI內(nèi)部高速時(shí)鐘

2.4 STM32第一個(gè)例程

2.4.1 Cube MX建立工程

圖2-8

圖2-9

圖2-10

圖2-11

圖2-12

圖2-13 配置內(nèi)部時(shí)鐘

圖2-14
點(diǎn)擊右上角:GENERATE CODE生成項(xiàng)目文件

2.4.2程序編寫

源碼(點(diǎn)亮LED燈,LED1閃爍):

    //主程序部分    /* USER CODE BEGIN WHILE */ while (1)  {		Scan_keys();    /* USER CODE END WHILE */    /* USER CODE BEGIN 3 */		HAL_GPIO_WritePin(GPIOD,GPIO_PIN_4,GPIO_PIN_RESET);		HAL_GPIO_WritePin(GPIOD,GPIO_PIN_5,GPIO_PIN_RESET);		HAL_GPIO_WritePin(GPIOD,GPIO_PIN_6,GPIO_PIN_RESET);	    HAL_GPIO_WritePin(GPIOD,GPIO_PIN_3,GPIO_PIN_SET);		HAL_Delay(500);		HAL_GPIO_WritePin(GPIOD,GPIO_PIN_3,GPIO_PIN_RESET);		HAL_Delay(500);  }  /* USER CODE END 3 */    注:需要注意代碼規(guī)范,將代碼寫在/* USER CODE BEGIN 1 */ /* USER CODE END1 */ 里,否則更改CubeMX時(shí)注釋塊之外的內(nèi)容會被刪除

代碼釋義:
兩個(gè)GPIO輸出的HAL庫函數(shù)
1、GPIO電平輸出HAL庫函數(shù)
void HAL_GPIO_WritePin(GPIO_TypeDefGPIOx,unit16_tGPIO_Pin,GPIO_PinState PinState);
三個(gè)參數(shù):
GPIOx:目標(biāo)引腳端口號
GPIO_pin:目標(biāo)引腳引腳號
PinState:高電平—GPIO_PIN_SET;
低電平—GPIO_PIN_RESET;
2、GPIO電平翻轉(zhuǎn)HAL庫函數(shù)
void HAL_GPIO_TogglePin(GPIO_TypeDef
GPIOx,unit16_tGPIO_Pin);

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/121239.html

相關(guān)文章

  • 指南者stm32單片機(jī)keil5新建工程和組織目錄的那些事

    32單片機(jī)固件庫入門(當(dāng)我們新建工程時(shí)…的各種配置和目錄結(jié)構(gòu))–學(xué)習(xí)筆記 一,關(guān)于keil5內(nèi)部的一系列配置 由于下述代碼的存在 每次如果想要包含stm32f10x_conf.h 只需要包含#include stm32f10x.h語句,同時(shí)包含下述宏定義 #ifdef USE_STDPERIPH_DRIVER #include stm32f10x_conf.h#endif 該宏定義可以在IDE中...

    edagarli 評論0 收藏0
  • STM32入門學(xué)習(xí)經(jīng)驗(yàn)總結(jié)

    摘要:嚴(yán)格地說,應(yīng)該是模仿實(shí)驗(yàn)。為什么覺得無從下手,看資料沒有頭緒經(jīng)驗(yàn)總結(jié)看資料需要計(jì)劃耐心和速度這里所謂的資料包括書籍文檔。建議有報(bào)銷條件的同學(xué)自己設(shè)計(jì)一塊板子學(xué)習(xí)。無法報(bào)銷的同學(xué),可以選購一款開發(fā)板學(xué)習(xí)。 STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARMCortex...

    biaoxiaoduan 評論0 收藏0
  • 【沁恒CH32學(xué)習(xí)】——RISC-V架構(gòu)學(xué)習(xí)筆記

    摘要:我首先百度簡單了解了架構(gòu)和架構(gòu)的區(qū)別,以我個(gè)人的理解是架構(gòu)代表之前的復(fù)雜指令集,而架構(gòu)代表著精簡指令集。而我這次的學(xué)習(xí)的重點(diǎn)并不是圍繞著指令集,而是基于架構(gòu)的開發(fā)板的應(yīng)用上。以上就是我本次學(xué)習(xí)架構(gòu)的筆記和心路歷程。 作為新手第一次接觸RISC-V架構(gòu)時(shí)。我首先百度簡單了解了ARM架構(gòu)和RIS...

    nihao 評論0 收藏0
  • STM32學(xué)習(xí)筆記 第一章 ARM處理器

    摘要:處理器擁有的寄存器組。主堆棧指針復(fù)位后缺省使用的堆棧指針,用于操作系統(tǒng)內(nèi)核以及異常處理例程包括中斷服務(wù)例程。進(jìn)程堆棧指針由用戶的應(yīng)用程序代碼使用。堆棧指針的最低兩位永遠(yuǎn)是,這意味著堆棧總是字節(jié)對齊的。 ...

    ruicbAndroid 評論0 收藏0
  • 單片機(jī)入門指南

    摘要:單片機(jī)入門指南本文基于常神文章基礎(chǔ)上將單片機(jī)入門部分進(jìn)行細(xì)化盡可能細(xì)節(jié)做到可實(shí)施性先引用一下常神的文章首先假設(shè)大家已經(jīng)對高中物理的電路部分有所了解。單片機(jī),如,是一種根據(jù)程序控制引腳高低電平的可編程器件,有些場合又將這種行為稱作嵌入式。 ...

    nevermind 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<