FAQ0092 SPI3 引腳設定方法

2021-10-19 14:22:12 字數 2196 閱讀 2052

faq0092 spi3 引腳設定方法

questions:如何設定 spi3 引腳

answer:需要開啟對應 gpio 時鐘、 開啟復用時鐘、 將 io 配置為復用功能、 設定重對映等相應的操作。

1. 將 pa15/pb3/pb4/pb5 作為 spi3 使用, 需要設定如下:

//開啟 gpioa、 gpiob 時鐘、 開啟復用時鐘、 開啟 spi3 時鐘

rcc_apb2periphclockcmd(rcc_apb2periph_gpioa | rcc_apb2periph_gpiob | rcc_apb2periph_afio, enable);

rcc_apb1periphclockcmd(rcc_apb1periph_spi3, enable);

//設定 pa15、 pb3、 pb5 為復用輸出, 如果 nss 選擇軟體方式控制, 則 pa15 設定為推挽輸出

gpio_initstructure.gpio_pins = gpio_pins_15;

gpio_initstructure.gpio_maxspeed = gpio_maxspeed_2mhz;

gpio_initstructure.gpio_mode = gpio_mode_af_pp;

gpio_init(gpioa, &gpio_initstructure);

gpio_initstructure.gpio_pins = gpio_pins_3 | gpio_pins_5;

gpio_init(gpiob, &gpio_initstructure);

//設定 pb4 為輸入

gpio_initstructure.gpio_pins = gpio_pins_4;

gpio_initstructure.gpio_mode = gpio_mode_in_floating;

gpio_init(gpiob, &gpio_initstructure);

//設定重對映 jtag-dp disabled and sw-dp enabled

gpio_pinsremapconfig(gpio_remap_swj_jtagdisable, enable);

2. 將 pa4/pc10/ pc11/ pc12 作為 spi3 使用, 需要設定如下:

//開啟 gpioa、 gpioc 時鐘、 開啟復用時鐘、 開啟 spi3 時鐘

rcc_apb2periphclockcmd(rcc_apb2periph_gpioa | rcc_apb2periph_gpioc| rcc_apb2periph_afio, enable);

rcc_apb1periphclockcmd(rcc_apb1periph_spi3, enable);

//設定 pa4、 pc10、 pc12 為復用輸出, 如果 nss 選擇軟體方式控制, 則 pa4 設定為推挽輸出

gpio_initstructure.gpio_pins = gpio_pins_4;

gpio_initstructure.gpio_maxspeed = gpio_maxspeed_2mhz;

gpio_initstructure.gpio_mode = gpio_mode_af_pp;

gpio_init(gpioa, &gpio_initstructure);

gpio_initstructure.gpio_pins = gpio_pins_10 | gpio_pins_12;

gpio_init(gpioc, &gpio_initstructure);

//設定 pc11 為輸入

gpio_initstructure.gpio_pins = gpio_pins_11;

gpio_initstructure.gpio_mode = gpio_mode_in_floating;

gpio_init(gpioc, &gpio_initstructure);

//設定重對映

gpio_pinsremapconfig(afio_map5_spi3_0011, enable);

型別: mcu 

應用適用型號: 第 

1 點適用於 

at32f403

, 第 

1 點和第 

2 點適用於 

at32f403a, at32f407

主功能: spi3

次功能: 無

3 MSP430引腳中斷

為了寫一篇文章做鋪墊 提醒著自己,這兩天一直在尋找 pragma vector port1 vector interrupt void p1 interrupt p1口中斷函式 對於這兩句話的解釋,最起碼讓自己感覺能說服自己 看了好多後自己的理解 pragma vector port1 vector...

stm32 引腳功能設定及應用

gpio mode ain 0x0,模擬輸入 gpio mode in floating 0x04,浮空輸入 gpio mode ipd 0x28,帶下拉輸入 gpio mode ipu 0x48,帶上拉輸入 gpio mode out od 0x14,表示配置相應管腳為gpio開漏輸出 真雙向io...

stm32 Boot0,Boot1引腳設定

boot0,boot1引腳設定?1 boot0設定為0後,將從主flash當中啟動,就我們目前所程式設計的地方啟動,只要程式正常,上電之後都是可以正常工作。這一般作為isp 2 boot0設定為1,boot1設定為0,將從rom區啟動,這上電啟動都會執行bootloader,在此過程中可以實現iap...