stm32怎么加载字库_收藏 | STM32单片机超详细学习汇总资料(二)
點(diǎn)擊“藍(lán)字”關(guān)注我們
3110月
收藏 | STM32單片機(jī)超詳細(xì)學(xué)習(xí)匯總資料(一)
◆41.DMA仲裁器分為軟件和硬件兩種。軟件部分分為4個(gè)等級(jí),分別是很高優(yōu)先級(jí)、高優(yōu)先級(jí)、中等、低。硬件部分由通道的大小來決定優(yōu)先級(jí),越低優(yōu)先級(jí)越高。
◆42.DMA有一個(gè)實(shí)時(shí)的傳輸數(shù)據(jù)量寄存器叫做DMA_CNDTR,最大值為65535,存放的是當(dāng)前傳輸所要傳輸?shù)臄?shù)據(jù)量。當(dāng)數(shù)據(jù)量變?yōu)?時(shí),表明傳輸完成。
◆43.CAN總線(ControllerArea Network)。CAN控制器根據(jù)兩根線上的電位差來判斷總線電平,總線電平又分為顯性電平和隱性電平,二者必居其一。
◆44.CAN總線具有6個(gè)特點(diǎn):
①多主控制
②系統(tǒng)若軟性
③通訊速度較快,通訊距離較遠(yuǎn)
④具有錯(cuò)誤檢測(cè)、錯(cuò)誤通知和錯(cuò)誤恢復(fù)功能
⑤故障封閉,當(dāng)總線上的設(shè)備發(fā)生連續(xù)故障錯(cuò)誤時(shí),CAN控制器會(huì)把改控制器踢出總線
⑥連接節(jié)點(diǎn)多。理論上可以無限制加載,但是受到時(shí)間延遲和電氣負(fù)載的限制,實(shí)際數(shù)目是有限制的。降低傳輸速度可以適當(dāng)增加可掛接負(fù)載個(gè)數(shù)。
◆45.CAN協(xié)議有兩個(gè)標(biāo)準(zhǔn),ISO11898(針對(duì)125kbps~1Mbps的高速速率)和ISO11519-2(125kbps以下的低速速率)
◆46.
◆47.CAN協(xié)議的有5種類型的幀:數(shù)據(jù)幀、遙控幀、錯(cuò)誤幀、過載幀、幀間隔。其中前兩種幀有標(biāo)準(zhǔn)格式(11位ID)和擴(kuò)展格式(29位ID)。
◆48.數(shù)據(jù)幀構(gòu)成:
(1) 幀起始。表示數(shù)據(jù)開的段幀起始。
(2) 仲裁段。表示該幀優(yōu)先級(jí)的仲裁段。
(3) 控制段。表示數(shù)據(jù)的字節(jié)及保留位段。
(4) 數(shù)據(jù)段。數(shù)據(jù)的內(nèi)容,一幀可發(fā)送0~8個(gè)字節(jié)的數(shù)據(jù)。
(5) CRC段。檢查幀的傳輸錯(cuò)誤段。
(6) ACK段。表示確認(rèn)正常接收的段。
(7) 幀結(jié)束。表示數(shù)據(jù)的段幀結(jié)束。
◆49.Stm32f103系列只有一個(gè)CAN控制器,有3個(gè)發(fā)送郵箱和3級(jí)深度的2個(gè)FIFO,14個(gè)過濾組器。
◆50.STM32的每個(gè)過濾組可以配置為1個(gè)32位過濾器和2個(gè)16位過濾器。除此之外,還可以配置為屏蔽位模式(ID+屏蔽)和標(biāo)識(shí)符列表(ID和屏蔽寄存器均用來做ID寄存器)模式。
◆51.CAN接收到有效報(bào)文被放置在3級(jí)郵箱深度的FIFO中,FIFO完全由硬件來管理。
◆52.CAN總線的波特率
◆53.觸摸屏一般分為電阻式觸摸屏和電容式觸摸屏。前者檢測(cè)觸摸的位置原理是利用觸摸屏控制器中的A/D轉(zhuǎn)換器經(jīng)過兩次A/D讀值后得出X和Y的坐標(biāo)值。注意:這個(gè)X和Y的值是相對(duì)于觸摸屏的,而非LCD屏。
所以在這里需要注意兩個(gè)概念:觸摸屏和LCD屏。這是兩個(gè)不同的概念,也是兩個(gè)不同的物理結(jié)構(gòu),其中電阻觸摸屏是由上下兩個(gè)導(dǎo)電層中間夾著一層非常薄的透明隔層;而LCD就是指顯示屏。
◆54.電阻觸摸屏有X和Y、X和Y的比例因子、坐標(biāo)軸方向、偏移量。LCD也有自己的這些參數(shù)。兩者完全不相干,所以在定位的時(shí)候需要進(jìn)行坐標(biāo)轉(zhuǎn)換。公式:
通過對(duì)屏幕的四個(gè)點(diǎn)進(jìn)行校準(zhǔn),得到四元一次方程,求解即可。
◆55.NEC協(xié)議的數(shù)據(jù)幀格式:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。同步碼由一個(gè)9ms的低電平和一個(gè)4.5ms的高電平組成,地址碼、地址反碼、控制碼、控制反碼均是8位數(shù)據(jù)格式。按照低位在前,高位在后的順序發(fā)送。
◆56.NEC協(xié)議在發(fā)送的時(shí)候,會(huì)有560us的38KHz的載波信號(hào),而在接收的時(shí)候這部分載波信號(hào)被認(rèn)定為低電平,而剩余的(2.25ms-650us)的邏輯“1”和(1.12ms-650us)的邏輯“0”時(shí)間則被認(rèn)定為高電平。
◆57.在單位時(shí)間內(nèi)的位移被定義為速度,速度有線速度和角速度之分,分別對(duì)應(yīng)兩種傳感器測(cè)量這兩種不同的速度:線速度傳感器(加速度計(jì))、角速度傳感器(陀螺儀)。
前者多應(yīng)用在靜態(tài)或者低慢速運(yùn)動(dòng)中的姿態(tài)求解,后者多應(yīng)用在動(dòng)態(tài)運(yùn)動(dòng)中姿態(tài)求解。
◆58.根據(jù)標(biāo)準(zhǔn)約定,零加速度(或零 G 準(zhǔn)位)通常定義為相當(dāng)于最大輸出值(12 位輸出為 4096,10 位輸出為 1024 等)一半的輸出。對(duì)于提供 12 位輸出的加速度計(jì),零 G 準(zhǔn)位將等于 2048。
輸出大于 2048 表示正加速度。輸出小于 2048 表示負(fù)加速度。加速度的數(shù)量通常用單位 g (1g = 9.8m/s2 = 重力加速度)表示。
通過確定測(cè)量的輸出與零 G 準(zhǔn)位之間的差值,然后除以加速度計(jì)的靈敏度(用計(jì)數(shù)/g 或 LSB/g表示)來計(jì)算加速度。
對(duì)于提供 12 位數(shù)字輸出的 2g 加速度計(jì),靈敏度為 819 計(jì)數(shù)/g 或 819 LSB/g。加速度等于:a = (Aout - 2048)/(819 計(jì)數(shù)/g),單位為 g。
◆59.加速度計(jì)測(cè)得的加速度的方向和設(shè)備設(shè)定的坐標(biāo)系是相反的,因?yàn)樵肀砻髟跍y(cè)量力的時(shí)候采用的是非慣性系參考系,而我們高中時(shí)代研究的坐標(biāo)系是慣性系參考系,前者在物體進(jìn)行運(yùn)動(dòng)產(chǎn)生加速度時(shí),假想一個(gè)與速度方向相反的力作用在物體上,這個(gè)力就是慣性力;
后者我們說不存在慣性力,只說存在慣性,因?yàn)樵趹T性坐標(biāo)系中,我們研究的是物體,而非坐標(biāo)系(即假定坐標(biāo)系相對(duì)地球靜止),當(dāng)我們把坐標(biāo)系也考慮在內(nèi)時(shí),當(dāng)坐標(biāo)系運(yùn)動(dòng),就產(chǎn)生了慣性力f,這種力作用會(huì)假想作用在物體上,只是與運(yùn)動(dòng)方向相反。
◆60.由上可知,加速度計(jì)的本質(zhì)是測(cè)量力而非加速度。
◆61.NRF24L01工作在2.4GHz的頻段,由于頻段頻率較高,所以傳輸速率較快,為2Mbps。
◆62.STM32的閃存模塊由:主存儲(chǔ)器、信息塊和閃存存儲(chǔ)器接口寄存器3個(gè)部分構(gòu)成。
主存儲(chǔ)器用來存放代碼和const常量;信息塊由兩個(gè)部分組成:啟動(dòng)程序代碼、用戶選擇字節(jié)。
其中啟動(dòng)程序代碼為ST公司自帶的啟動(dòng)程序,用于串口下載。
最后的閃存存儲(chǔ)器接口寄存器用于控制整個(gè)對(duì)閃存區(qū)域的操作。
◆63.CPU的運(yùn)行速度比FLASH的操作速度快的多,一般FLASH的最快訪問速度≤24Mhz。如果CPU的速度超過這個(gè)頻率,那么在讀取FLASH的時(shí)候必須加入等待時(shí)間(FLASH_ACR設(shè)置)。
◆64.FLASH編程時(shí),寫入必須為半字(16位)。并且在寫入的時(shí)候必須保證所寫區(qū)域的數(shù)據(jù)必須為0xFFFF。
◆65.STM32的FSMC有HADDR[27:0],其中[27:26]用來選擇BANK區(qū)域的4個(gè)不同塊。
剩下的[25:0]則用來連接外部存儲(chǔ)區(qū)域的地址線FSMC_A[25:0]。
如果數(shù)據(jù)寬度是8bit,此時(shí)的HADDR[25:0]和FSMC_A[25:0]是完全對(duì)應(yīng)的。
如果數(shù)據(jù)寬度是16bit,此時(shí)的HADDR[25:1]和FSMC_A[24:0]是對(duì)應(yīng)起來的。
需要注意:無論數(shù)據(jù)寬度是多少,外部的FSMC_A[0]和A[0]總是對(duì)應(yīng)的。
◆66.關(guān)于LB和UB的信號(hào)控制是由硬件自動(dòng)控制的,當(dāng)AHB的數(shù)據(jù)寬度小于外部存儲(chǔ)器的數(shù)據(jù)寬度時(shí),此時(shí)LB和UB的控制信號(hào)自動(dòng)產(chǎn)生(比如字節(jié)讀取/寫入16bit的外部存儲(chǔ)器)。
◆67. __attribute__ (函數(shù)屬性、變量屬性、類型屬性等)。如果在使用SRAM時(shí),可以采用u32 sram_array[xx] __attribute__ ((at(0x68000000))代表將外部SRAM的空間全部給了sram_array這個(gè)變量,他具有在at0x68000000這個(gè)地址的屬性。
往里面寫值就直接在SRAM里面寫值。
◆68.
內(nèi)存管理有一種方式叫做分塊式內(nèi)存管理。
注意表中的分配方向,從頂?shù)降?。每一?xiàng)對(duì)應(yīng)一個(gè)內(nèi)存塊。里面的數(shù)值代表了內(nèi)存池的狀態(tài):如果為0,表示該內(nèi)存沒有被分配;如果非0,那么數(shù)值的大小就表示了該塊內(nèi)存被連續(xù)占用的內(nèi)存數(shù)。
比如說數(shù)值為20,意思是包括該項(xiàng)在內(nèi)的內(nèi)存塊被連續(xù)占用了20塊分給了指針。
◆69.SD卡的分類:
一般的SD卡支持兩種傳輸模式:SD卡模式(SDIO)、SPI模式。顯然前面一種是專用模式,所以速度比較快。
◆70.常用的漢字內(nèi)碼系統(tǒng)有GB2313、GB13000、GBK、BIG5(繁體)。其中GB2313只有幾千個(gè)漢字,而GBK則有2萬多漢字。
◆71.要顯示漢字,采用的方式如果用點(diǎn)陣的形式是不可取的,因?yàn)檫@無法查找漢字。采用的方式就是內(nèi)碼系統(tǒng)。
GBK標(biāo)準(zhǔn)中,一個(gè)漢字對(duì)應(yīng)2個(gè)字節(jié):前者稱為區(qū)(0x81~0xFE)后者為(0x40~0x7E)和(0x80~0xFE)。前者有126個(gè)區(qū),后者有190,那么可以顯示的漢字?jǐn)?shù)量有126*190=23940個(gè)。
根據(jù)這兩個(gè)值用來查找字庫(kù),字庫(kù)中存放的還是每個(gè)漢字的點(diǎn)陣數(shù)據(jù)。
這個(gè)字庫(kù)非常大,如果是16*16的字體,那么一個(gè)字體就需要32個(gè)字節(jié),如此說來需要23940*32=748K的空間,可見非常大,所以需要外部的Flash來存儲(chǔ)這個(gè)字庫(kù)。
◆72.由于漢字內(nèi)碼系統(tǒng)不具有國(guó)際通用性,但是Unicode幾乎把所有的語(yǔ)言都放置進(jìn)來,這樣在單片機(jī)中操作漢字時(shí),就需要將GBK和Unicode轉(zhuǎn)化。
尤其是在FATFS中,創(chuàng)建中文文件名和讀取中文文件信息時(shí)需要將Unicode換轉(zhuǎn)為GBK后再進(jìn)行修改操作,再反轉(zhuǎn)換成Unicode保存修改。
這么說,兩者的存在是由于標(biāo)準(zhǔn)的不統(tǒng)一,并且Unicode中只有6064個(gè)漢字,而GBK顯然是一種漢字?jǐn)U展。
◆73.BMP圖片編碼的順序是從左到右,從下到上。
◆74.VS1053是一款高性能的數(shù)字音頻解碼芯片,從SD卡中將mp3等音樂音頻文件通過SPI送給VS1053后,由其進(jìn)行音頻解碼,輸出音樂給耳機(jī)。
耳機(jī)驅(qū)動(dòng)可以采用TDA1308芯片,這款芯片為AB類耳機(jī)驅(qū)動(dòng)芯片。
◆75.IAP(In Application Programming)在應(yīng)用編程是為了后期開發(fā)更新程序方便而提出的概念。具體的實(shí)現(xiàn)方法如下圖所示:
在普通編程中,flash中的code是通過JTAG和ISP等工具下載到單片機(jī)中。
而在IAP編程中,flash被分區(qū)為A和B兩個(gè)區(qū)域,A區(qū)域只允許用USB/USART等方式下載,此區(qū)域作為更新B區(qū)域的代碼用。
B區(qū)域則是用戶的code區(qū)域,真正的代碼在這里被執(zhí)行,放置的就是app。
上圖表示STM32正常運(yùn)行的流程圖,可以看到上電復(fù)位后系統(tǒng)從0x80000004處開始運(yùn)行程序,這里放置的是復(fù)位中斷向量,然后跳轉(zhuǎn)至復(fù)位中斷程序入口后再跳轉(zhuǎn)至main函數(shù)運(yùn)行用戶的程序。
上圖表示加入IAP后的STM32程序運(yùn)行流程圖??梢钥吹缴想姀?fù)位后跳到IAP程序的main函數(shù)處運(yùn)行IAP過程(這個(gè)過程就是把下面灰底色塊的程序代碼燒進(jìn)B區(qū)域à代碼更新)。
后面的過程和STM32正常運(yùn)行一樣,如果出現(xiàn)中斷請(qǐng)求,還是跳轉(zhuǎn)到A區(qū)域中的中斷向量表中,然后再跳轉(zhuǎn)到B區(qū)域的中斷服務(wù)入口。
◆76.USB有四根線,VCC、GND、D+、D-。在USB主機(jī)上,D+和D-均通過一個(gè)15K的電阻接地,這樣兩條線均為低電平。
在USB設(shè)備中,對(duì)于高速設(shè)備會(huì)在D+通過一個(gè)1.5K的電阻接到VCC,而低俗設(shè)備會(huì)在D-通過一個(gè)1.5K的電阻接到VCC。
這樣主機(jī)就可以通過D+和D-的高電平的到來來檢測(cè)是否有設(shè)備接入,并且識(shí)別高低速設(shè)備。
◆77.UCOSII是一種實(shí)時(shí)操作系統(tǒng),具有執(zhí)行效率高、占有空間小(最小內(nèi)核2KB)、實(shí)施性能優(yōu)良、擴(kuò)展性強(qiáng)和移植性強(qiáng)等優(yōu)點(diǎn)。
UCOS具有多任務(wù)并發(fā)工作的特點(diǎn)(注意,任何時(shí)候只有一個(gè)任務(wù)能夠占用CPU。并發(fā)只是任務(wù)輪流占用CPU而不是同時(shí)工作)。
最大支持255個(gè)任務(wù)并發(fā)工作。
捷配免費(fèi)打樣券領(lǐng)取火爆進(jìn)行中:
長(zhǎng)按識(shí)別加入PCB設(shè)計(jì)工程師交流群
你“在看”我嗎?
總結(jié)
以上是生活随笔為你收集整理的stm32怎么加载字库_收藏 | STM32单片机超详细学习汇总资料(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抱金猪上征信吗
- 下一篇: conda create出现连接问题_在