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

歷史上的今天

今天是:2024年09月16日(星期一)

2019年09月16日 | STM32之SPI的迭代

發(fā)布者:科技創(chuàng)新實踐者 來源: eefocus關(guān)鍵字:STM32  SPI  迭代 手機看文章 掃描二維碼
隨時隨地手機看文章

回顧前面用SPI2寫的一個W25Q64的程序


void SPI2_Init(void)

{ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //PB13/14/15復(fù)用推挽輸出 

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB

 

  GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);  //PB13/14/15上拉

void W25QXX_Init(void)

{

        GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOG, ENABLE );//PORTB時鐘使能 

 

GPIO_InitStructure.GPIO_Pin = CS_GPIOPIN;  

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽輸出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_Init(CS_GPIO, &GPIO_InitStructure);

#define CS_GPIO       GPIOG

#define CS_GPIOPIN    GPIO_Pin_1

可以看到用到的4根線的層次是不同的。PB13 PB14 PB15用于SPI通訊的時鐘和數(shù)據(jù),而片選是單獨的,是PG1


現(xiàn)在我們仔細看看淘寶買的這個屏幕。它其實有3個SPI設(shè)備


觸控屏


SD卡


Flash


現(xiàn)在試試改動前面的SPI程序,在做一個新的吧。


看屏幕的部分,也是SPI2:可以看到用到的4根線的層次是不同的。PB13 PB14 PB15用于SPI通訊的時鐘和數(shù)據(jù),而片選是單獨的,是PB12。

開始接線:


屏幕     MCU


MOSI   B15


MISO  B14


CLK     B13


F_CS    B12




軟件發(fā)現(xiàn)只需要修改配置就可以直接work


//用SPI2也就是PB13-14-15和PG1作為CS驅(qū)動flash 可讀可寫

//移植修改部分

#define CS_GPIO       GPIOB

#define CS_GPIOPIN    GPIO_Pin_12

#define W25QXX_CS PBout(12)  //W25QXX的片選信號

 

//#define CS_GPIO       GPIOG

//#define CS_GPIOPIN    GPIO_Pin_1

//#define W25QXX_CS PGout(1)  //W25QXX的片選信號



現(xiàn)在我們來做另外一個事情:


主機有多個SPI設(shè)備,比如我MCU現(xiàn)在就有2個FLASH 我要分開操作了。


格局有點大,我們現(xiàn)在做小一點。主要是PICK那一個,也就是片選這個函數(shù)你用哪個腳。


改動1


#define CS_GPIO                GPIOB

#define CS_GPIOPIN             GPIO_Pin_12

#define W25QXX_CS(a) a?PBout(12):PGout(1) //W25QXX的片選信號

 

#define CS_GPIO2       GPIOG

#define CS_GPIOPIN2    GPIO_Pin_1

主要是現(xiàn)在我傳參進去W25QXX_CS(a)   傳1的話代表是屏幕上電FLASH  傳0的話代表的是板上的FLASH


改動2


GPIO_InitStructure.GPIO_Pin = CS_GPIOPIN;  

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽輸出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Pin = CS_GPIOPIN2; 

  GPIO_Init(CS_GPIO2, &GPIO_InitStructure);

兩個設(shè)備的CS都要init。


出問題卡住了:


#define W25QXX_CS(a) (a?PBout(12):PGout(1)) //W25QXX的片選信號


這樣定義以后,編譯失敗


這是C語言的知識。


  1 #include

  2 int A,B;

  3 #define wm(a)   a?A:B

  4 void main()

  5 {

  6  printf("%dt%dn",A,B);

  7  wm(1)=3;

  8  printf("%dt%dn",A,B);

  9 }報錯!左值是常量!?。?!

  1 #include

  2    int A,B,C;

  3    #define wm(a)   (a)?(A):(B)

  4    void main()

  5    {

  6     printf("%dt%dt%dn",A,B,C);

  7     C=wm(1);

  8     printf("%dt%dt%dn",A,B,C);

  9    }可以的 成功執(zhí)行!?。?p>

  1 #include

  2 int A,B,C;

  3 #define wm(a)  A

  4 void main()

  5 {

  6  printf("%dt%dn",A,B);

  7  wm(1)=3;

  8  printf("%dt%dn",A,B);

  9 }

~      可以的

 1 #include

  2 int A,B,C;

  3 #define wm(a) C=a?A:B

  4 void main()

  5 {

  6  printf("%dt%dn",A,B);

  7  wm(1)=3;

  8  printf("%dt%dn",A,B);

  9 }問題依舊

~                                                                               

~      

  1 #include

  2 int A,B,C;

  3 #define wm(a,A,B)  (a)?(A):(B)

  4 void main()

  5 {

  6  printf("%dt%dn",A,B);

  7  wm(1,A,B)=3;

  8  printf("%dt%dn",A,B);

  9 }

~                                                                               

~       企圖傳參進去 問題依舊


1 #include

  2 int A,B,C;

  3 #define wm(choice,value)  (choice)?((value?A=1:A=0)):(value?B=1:B=0)

  4 void main()

  5 {

  6  printf("%dt%dn",A,B);

  7 C=wm(1,1);

  8  printf("%dt%dn",A,B);

  9 }

~                                                                               

~      問題依舊



那就這樣吧。。。。

關(guān)鍵字:STM32  SPI  迭代 引用地址:STM32之SPI的迭代

上一篇:秉火429筆記之十 EXTI-外部中斷/事件
下一篇:STM32學習雜記-SPI的4種模式

推薦閱讀

1.編碼器 圖1 編碼器示意圖 圖1為編碼器的示意圖,中間是一個帶光柵的碼盤,光通過光柵,接收管接收到高電平,沒通過,接收到低電平。電機旋轉(zhuǎn)一圈,碼盤上有多少光柵,接受管就會接收多少個高電平。2.stm32編碼器接口模式(寄存器)STM32的編碼器接口模式在STM32中文參考手冊中有詳細的說明。 圖2 STM芯片編碼器接口模式說明 下圖是一個計數(shù)器操作的實...
日前,汽車零部件供應(yīng)商日本電裝與通信公司黑莓展開合作,將全球首款采用黑莓QNX平臺的綜合性人機交互數(shù)字座艙配置到斯巴魯新車中。自2019年秋季開始,這一技術(shù)將被應(yīng)用到在美國發(fā)售的斯巴魯力獅和傲虎這兩款車型中。據(jù)悉,這一數(shù)字座艙方案采用了黑莓的QNX虛擬機管理技術(shù),能夠?qū)崿F(xiàn)對車載人機界面系統(tǒng)的綜合控制。在2018年CES展會上,黑莓曾經(jīng)首次對外展...
最近編譯STM8S003時需要使用flash庫函數(shù),看起來簡單,實則折騰了超過1天。今天總結(jié)方法如下:1.修改stm8s.h 156行 #define RAM_EXECUTION 注釋去掉 如果用的是COSMIC這個 可以不去2、在project的source和include files中添加 stm8s_flash文件3.右鍵點擊項目文件,選擇settings->linker->category->Input,然后Code,constants那一區(qū)域添加.FLASH...
蘋果2021年秋季新品發(fā)布會,令人失望。各種抱怨在朋友圈刷屏:“熬了半夜,令人失望”、“天天一套模具,換個顏色、加點防抖、升級一下參數(shù)”、“連蘋果都打性價比的牌了”、“喬布斯之后,蘋果再無驚喜”……當然也有贊譽,是關(guān)于線上發(fā)布會,辦得非常像風光大片,令人懷念加州的陽光,還有新出的A15芯片以及蘋果iPhone 13有了一些新功能,諸如 “影像...

史海拾趣

問答坊 | AI 解惑

受控源

一.定義    前面我們講的都是獨立電源,簡稱獨立源。獨立電壓源的電壓和獨立電流源的電流都是定值或是確定的時間函數(shù)。    電路中除了作用有獨立電源外,還往往含有受控電源。受控電壓源的電壓和受控電流源的電流不 ...…

查看全部問答∨

學習單片機的八大步驟

學習使用單片機就是理解單片機硬件結(jié)構(gòu),在匯編或C語言中學會各種功能的初始化設(shè)置,以及實現(xiàn)各種功能的程序編制。 第一步:數(shù)字I/O的使用     使用按鈕輸入信號,發(fā)光二極管顯示輸出電平,就可以學習引腳的數(shù)字I/O功能,在按下某個 ...…

查看全部問答∨

創(chuàng)意防盜門鎖-V Lock導(dǎo)向門鎖

創(chuàng)意防盜門鎖-V Lock導(dǎo)向門鎖欣賞 很多人都有晚上回家,卻拿著鑰匙找不到門鎖鎖孔的經(jīng)歷。由于受到日式恐怖片和其他鬼怪故事的熏陶,總感到背后一陣陣發(fā)涼,此時鑰匙更是找不到門鎖的鎖孔。中國設(shè)計師張俊杰 (Junjie Zhang)帶來的創(chuàng)意防盜門鎖-V L ...…

查看全部問答∨

世界趨向“綠色”——三大議題能源效率、照明效率及太陽能

   現(xiàn)在的世界趨向“綠色”,其中三個廣受大眾關(guān)注的議題包括:能源效率、照明效率及太陽能。    2010年最具發(fā)展?jié)摿Φ膽?yīng)用都是圍繞這三大主題,例如替代性能源、可攜式消費性電子裝置、無線通信基礎(chǔ)設(shè)施、電動車與油電混合 ...…

查看全部問答∨

小弟想考嵌入式的研究生 有些問題不太清楚

1:北京理工大學 和北京交通大學 誰的嵌入式好點 2:控制工程算是嵌入式嗎   想做嵌入式(系統(tǒng)或軟件)考什么方向好  …

查看全部問答∨

lm3s里面用什么指令可以代替NOP.

請問大家lm3s里面用什么指令可以代替NOP. 我是在keil環(huán)境下.…

查看全部問答∨

STM32能上200MHz就好拉

                                  …

查看全部問答∨

NXP也出CM3了

                                 不過要到下半年或者明年  …

查看全部問答∨

關(guān)于二進制代碼的燒寫問題

請問用JATG口能燒寫進二進制代碼嗎?如果不能,需要燒寫二進制的時候,需要用到哪幾根線?或者有哪幾根線需要單獨引出來?…

查看全部問答∨
小廣播
設(shè)計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(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