stm32串列埠在程式中配置時STM32串列埠在程式中配置時PA9,USARTTX和PA10,USARTRX為什麼工作模式配置成複用推輓輸出和浮空輸入??

2021-05-24 02:34:44 字數 2766 閱讀 6466

1樓:雲淡淡的楓

usart串列埠,首先tx是作為輸出的,邏輯上輸出

的資料都是0或者1,也就是由高低電平來表示,推輓就是能穩定輸出1或者0。而複用,是因為這個io受的是內部的的usart模組來控制,並非是gpio暫存器來控制。至於rx設定為浮空輸入那就很好理解了,首先接收的肯定是要設定為輸入,才能檢測外界的電平,其次,浮空就能收到高和低的電平,也才能分析出0和1.

2樓:匿名使用者

關於stm32的usart配置,需要完成以下幾個步驟1,開啟usart時鐘

2,配置pa9及pa10

由於usart屬於可選功能項

所以tx要設定成gpio_mode_af_pp;,即複用推輓輸出rx用於資料輸入,被設定成浮空輸入

這是由於stm32的io口引腳總共只有以下幾種模式gpio_mode_ain = 0x0,

gpio_mode_in_floating = 0x04,gpio_mode_ipd = 0x28,gpio_mode_ipu = 0x48,gpio_mode_out_od = 0x14,gpio_mode_out_pp = 0x10,gpio_mode_af_od = 0x1c,gpio_mode_af_pp = 0x18對於特殊功能模式,只有一個複用開漏及複用推輓。

這兩種都是用於輸出的情況。

所以rx只能被設定成浮空輸入

這不僅是usart,對於其他的如spi也是如此。

3樓:吾乃嫖客

這個,因為串列埠的兩根資料線tx是用來傳送資料,rx是用來接收資料的.然後複用是因為使用了gpio的複用功能,然後推輓輸出是為了增強io口的輸出能力.

stm32 pa9配置成串列埠tx,傳送資料時也是一直都是高電平不變

4樓:匿名使用者

設定成io,初步判斷stm32 pa9管腳沒有問題。

配合串列埠除錯助手,

如果接受沒有問題,

stm32軟體裡面,你簡單寫 tx buf = rx buf再逐步排查一下電路板、串列埠線上面有沒有訊號。

為什麼stm32中spi的miso引腳設定成複用推輓輸出

5樓:大司命

讀取其他arm晶片(如nxp)一般很容易看出晶片的設定是否正確。不過對於stm32就容易讓人迷惑了。例如,我們在使用spi匯流排進行通訊時,可以這樣設定:

gpio_initstructure.gpio_pin = gpio_pin_4 | gpio_pin_5 |

gpio_pin_6 | gpio_pin_7;

gpio_initstructure.gpio_speed =

gpio_speed_50mhz;

gpio_initstructure.gpio_mode =

gpio_mode_af_pp;

// 複用的推輓輸出

答題是肯定的,對於stm32的這一類管腳來說(如usart_rx)即可以設定成為輸入模式,也可以設定成為複用的推輓輸出。其工作都是正常的,不過建議大家還是設定成為輸入埠的好,容易理解。

具體產生這一問題的原因是:從功能上來說,miso應該配置為輸入模式才對,但為什麼也可以配置為gpio_mode_af_pp?請看下面的gpio複用功能配置框圖。

當一個gpio埠配置為gpio_mode_af_pp是,這個埠的內部結構框圖如下:圖中可以看到,片上外設的複用功能輸出訊號會連線到輸出控制電路,然後在埠上產生輸出訊號。但是在晶片內部,miso是spi模組的輸入引腳,而不是輸出引腳,也就是說圖中的"複用功能輸出訊號"根本不存在,因此"輸出控制電路"不能對外產生輸出訊號。

6樓:我不是阿

因為stm32的spi模組本身還有個單線雙向模式,可以通過暫存器設定miso的資料既可以輸入也可以輸出,如果miso僅設為輸入模式在miso腳在單線雙向模式下將無法提供輸出資料功能!

stm32f407微控制器uart串列埠gpio口複用功能配置問題 5

7樓:匿名使用者

關於stm32的usart配置

,需要完成以下幾個步驟

1,開啟usart時鐘

2,配置pa9及pa10

由於usart屬於可選功能項回

所以tx要設定成答gpio_mode_af_pp;,即複用推輓輸出rx用於資料輸入,被設定成浮空輸入

這是由於stm32的io口引腳總共只有以下幾種模式gpio_mode_ain = 0x0,

gpio_mode_in_floating = 0x04,gpio_mode_ipd = 0x28,gpio_mode_ipu = 0x48,gpio_mode_out_od = 0x14,gpio_mode_out_pp = 0x10,gpio_mode_af_od = 0x1c,gpio_mode_af_pp = 0x18對於特殊功能模式,只有一個複用開漏及複用推輓。

這兩種都是用於輸出的情況。

所以rx只能被設定成浮空輸入

這不僅是usart,對於其他的如spi也是如此。

8樓:過聽雙眭利

您好要實bai現uart

轉rs485功能。用du的是ti

6lb184

485晶片,zhire/de腳是是控制

daot/r方向,一般是連回

在一起。請問是用

答mcu的通用gpio控制,還是用mcu

uart上的管腳rts控制?

如果是前者,還需要改uart程式?

可以選擇任意可用io口,實際應用中,可以用tx腳控制

stm32使用虛擬串列埠通過usb向pc傳送資料怎樣提高速度

解決方案1 1ms之內可以多個64b的包,要看匯流排負載情況,最好的情況可以1ms可以bulk傳輸10個以上包出來,這樣有可能到600kbps解決方案2 我也覺得超過64kkb可能性比較小,那些聲稱很大的人的測試,都是譁眾取寵,沒見有完整原始碼。解決方案3 印象裡,1ms查詢一次是hid方式,虛擬串...

關於stm32微控制器的串列埠除錯問題

估計是你的串列埠時鐘沒有初始化,所以編譯正確也沒有效果 看看我的初始化 enable usart1 and gpioa clock rcc apb2periphclockcmd rcc apb2periph usart1 rcc apb2periph gpioa rcc apb2periph afi...

誰來下stm32的程式框架,誰來分享下STM32的程式框架?

2012年時候因為專案需要寫了個小型實時系統,專用於stm32的,後來沒事做了大修改,取名udoos,應該是你所謂的框架,很另類。準備開源,有興趣的話交個朋友,切磋切磋。uint32 t的,uint16 t有應該是32位和16位資料型別定義,你看看巨集定義應該能夠找到,io uint16 t有 ba...