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...