日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2024年10月10日(星期四)

正在發(fā)生

2018年10月10日 | stm32之nRF24L01無線模塊(1):SPI2到SPI1的移植

發(fā)布者:游走人間 來源: eefocus關(guān)鍵字:stm32  nRF24L01  無線模塊  移植 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

    本來要接著寫滴答定時(shí)器的,但是趁熱打鐵寫下SPI2到SPI1的移植。

    為什么SPI2到SPI1的移植要放在nRF24L01模塊里寫呢,因?yàn)闊o線模塊最重要的數(shù)據(jù)傳輸就是通過SPI實(shí)現(xiàn)的。為什么需要移植呢,因?yàn)榧词故且粋€(gè)廠家的板子,不同型號之間它的無線模塊引腳也有可能是不同的,順便稿下移植,加深下理解。SPI2移植到SPI1呢,自己做的時(shí)候遇到了一些問題,就從遇到的問題順便講下初始化。

1.引腳問題

    看stm32的手冊,不知道為什么,無論在GPIO還是在SPI里都沒有看到這個(gè)引腳的問題(初學(xué)者有可能移植的時(shí)候可能納悶為什么是這些引腳),只有在引腳復(fù)用AFIO那里才提了一下,如下圖

[轉(zhuǎn)載]stm32之nRF24L01無線模塊(1):SPI2到SPI1的移植

    這樣才知道SPI1的引腳,但是SPI2的引腳手冊里沒有提到,只能結(jié)合板子的電路原理圖順便查一下了,以我用的兩個(gè)德飛萊的板子為例,前者是德飛萊M3S,可以插ILI9320那個(gè)板子,后者是德飛萊小一些沒有SD插槽那個(gè)板子。

[轉(zhuǎn)載]stm32之nRF24L01無線模塊(1):SPI2到SPI1的移植


[轉(zhuǎn)載]stm32之nRF24L01無線模塊(1):SPI2到SPI1的移植

    可以看到二者的引腳是不同的,但是引腳并不是隨意給出的,在不進(jìn)行重映射的情況下,前者的SPI引腳是SPI2對應(yīng)的引腳,后者則是SPI1對應(yīng)的引腳。由于對應(yīng)的引腳不同,自然在GPIO的初始化時(shí)候,要修改初始化的引腳,引腳的輸入輸出模式,在數(shù)據(jù)手冊中已經(jīng)給出,如下

[轉(zhuǎn)載]stm32之nRF24L01無線模塊(1):SPI2到SPI1的移植

2.時(shí)鐘的使能

    由于引腳改了,使能的GPIO時(shí)鐘也需要進(jìn)行一下修改,同時(shí)切記不要忘了SPI1和SPI2時(shí)鐘的區(qū)別,看一下數(shù)據(jù)手冊中給出的系統(tǒng)結(jié)構(gòu),如下圖

[轉(zhuǎn)載]stm32之nRF24L01無線模塊(1):SPI2到SPI1的移植
    特別需要注意的是SPI1掛在APB2上,而SPI2和SPI3掛在APB1上,因此SPI時(shí)鐘初始化的時(shí)候,要注意是

RCC_APB1PeriphClockCmd( RCC_APB1Periph_SPI2,  ENABLE );

RCC_APB2PeriphClockCmd( RCC_APB2Periph_SPI1,  ENABLE );

這兩句的哪一個(gè)(我還傻傻滴找了半天RCC_APB1Periph_SPI1[轉(zhuǎn)載]stm32之nRF24L01無線模塊(1):SPI2到SPI1的移植

這個(gè)時(shí)鐘在設(shè)置SPI速度的時(shí)候還會導(dǎo)致一個(gè)小問題,APB2的最大時(shí)鐘是APB1的一倍,由于nRF24L01的最大頻率是10MHz,因此移植的時(shí)候注意一下。

3.片選和使能的預(yù)定義

    看一下上面的無線模塊的電路原理圖,除了SPI引腳就是片選CSN和使能CE引腳了,這兩個(gè)引腳是用于開始和結(jié)束SPI通信的,移植的時(shí)候也有可能沒注意到。

    庫函數(shù)中為了簡潔明了,一般將引腳的置高置低都用預(yù)定義的形式表示,比如CE的置高置低是這么表示的

#define NRF24L01_CE_SET GPIO_SetBits(GPIOG,GPIO_Pin_6)

#define NRF24L01_CE_CLR GPIO_ResetBits(GPIOG,GPIO_Pin_6)

    在移植的時(shí)候,這種預(yù)定義很容易忽略,忘了的話根本就不會開始SPI通信,自然也就沒有現(xiàn)象了。

4.庫函數(shù)的改變

    在SPI2的函數(shù)中,只要是涉及寫寄存器的部分,就要看下到底寫的是SPI2還是SPI1的寄存器,當(dāng)然,這里有一個(gè)很明顯的特點(diǎn),就是stm32官方的庫函數(shù)一般是通用的,像下面這個(gè)SPI命令函數(shù)

SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState)

    而廠商寫的,一般都是需要注意下的,比如SPI速度設(shè)置的函數(shù)

void SPI2_SetSpeed(u8 SPI_BaudRatePrescaler)

{

  assert_param(IS_SPI_BAUDRATE_PRESCALER(SPI_BaudRatePrescaler));

SPI2->CR1&=0XFFC7;

SPI2->CR1|=SPI_BaudRatePrescaler;

SPI_Cmd(SPI2,ENABLE); 

    這里寫的寄存器就是SPI2的寄存器,移植的時(shí)候就需要改一下啦(結(jié)構(gòu)體寄存器關(guān)系滴答定時(shí)器那里已經(jīng)講過啦)

5.玄學(xué)問題((*^__^*)。。。)

    搞硬件,必不可少的會出現(xiàn)玄學(xué)問題,比如keil4好使,keil5不好使的什么的,所以需要不斷地嘗試,自己做這個(gè)移植的時(shí)候,有一段毫不相關(guān)引腳注釋居然改變了結(jié)果,最后一句一句注釋掉,發(fā)現(xiàn)實(shí)際是廠商的函數(shù)寫的不規(guī)范,把端口的輸入輸出頻率的初始化給漏掉了[轉(zhuǎn)載]stm32之nRF24L01無線模塊(1):SPI2到SPI1的移植大部分玄學(xué)問題都是都原因的,移植的時(shí)候不斷調(diào)試就能找到問題所在。


關(guān)鍵字:stm32  nRF24L01  無線模塊  移植 引用地址:stm32之nRF24L01無線模塊(1):SPI2到SPI1的移植

上一篇:STM32學(xué)習(xí)筆記---基于UCOSII的EXTI外部按鍵中斷實(shí)驗(yàn)
下一篇:STM32F1x系列內(nèi)存結(jié)構(gòu)

推薦閱讀

for(;;){void* buffer = malloc(SIZE);memset(buffer,SIZE);process(buffer)free buffer;}這是一位實(shí)習(xí)生(我曾帶過10+位實(shí)習(xí)生,因此見多識廣)的偽代碼,原本這個(gè)SIZE很小,估計(jì)是存放URL用的,定義為512字節(jié),后來由于某種原因,擴(kuò)大到了1M,從512字節(jié)擴(kuò)大到了1M,速度變慢很多。為什么呢?這位同學(xué)無法解釋,但我讓他繼續(xù)探索,找到真正的原因。我讓...
蘋果新一代iPhone 11系列自發(fā)售以來一直相當(dāng)火爆,官網(wǎng)發(fā)貨周期最長需要4-5個(gè)星期,但隨著用戶量的增多,也陸續(xù)被發(fā)現(xiàn)存在不少問題,不少用戶已經(jīng)反饋iPhone 11系列存在夜間拍照出現(xiàn)“鬼影”門以及聽筒無聲等問題。截至目前,用戶開始集中反饋iPhone 11系列的新問題,那就是相機(jī)出現(xiàn)嚴(yán)重“鬼影”門,同時(shí)還有用戶表示,自己的iPhone 11系列手機(jī),拍攝...
今年相較于上一年,全球多個(gè)品牌的智能手機(jī)出貨量均有下跌。其中,三星以三千五百萬部的跌幅暫為跌幅第一,而非可能面臨芯片供應(yīng)不足的華為,這讓市場頗感意外。 三星業(yè)績慘淡的很大原因在于,今年以來,三星并沒有對渠道放寬,反而全球范圍內(nèi)收緊渠道,擠壓了渠道的利潤。據(jù)析,三星此番做法是認(rèn)為華為作為自己的強(qiáng)勁競爭對手退出了部分市場,想從渠道方...
英特爾首席執(zhí)行官Pat Gelsinger在接受BBC采訪時(shí)表示,由于英國脫歐,該公司不再考慮將英國作為設(shè)立芯片廠的候選國,而在英國脫歐之前,該公司顯然已經(jīng)定下了這件事?,F(xiàn)在,該公司正在另一個(gè)歐盟國家尋找一個(gè)地點(diǎn),以投資950億美元建立一個(gè)新的半導(dǎo)體工廠,以及對其在愛爾蘭的現(xiàn)有工廠進(jìn)行升級。盡管英特爾在英國脫歐之前還沒有就選址做出任何確定的決定,...

史海拾趣

小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved