標(biāo)題: stm32單片機(jī)串口pA9tx引腳可以在拉高拉低電平和發(fā)送數(shù)據(jù)狀態(tài)下切換嗎 [打印本頁]

作者: Xiuer66    時(shí)間: 2023-6-25 17:24
標(biāo)題: stm32單片機(jī)串口pA9tx引腳可以在拉高拉低電平和發(fā)送數(shù)據(jù)狀態(tài)下切換嗎
就是我需要先用pa9引腳產(chǎn)生一個(gè)上升沿喚醒模組,然后在用PA9引腳TX功能發(fā)送數(shù)據(jù),這個(gè)功能可以實(shí)現(xiàn)嗎

作者: 123156fsadf    時(shí)間: 2023-6-26 08:33
可以實(shí)現(xiàn),就是第一個(gè)字節(jié)可能會(huì)丟失
作者: Xiuer66    時(shí)間: 2023-6-26 08:58
123156fsadf 發(fā)表于 2023-6-26 08:33
可以實(shí)現(xiàn),就是第一個(gè)字節(jié)可能會(huì)丟失

我這樣試了一下,一開始按下按鍵能夠發(fā)送數(shù)據(jù),但是過一會(huì)按鍵外部中斷和串口中斷就會(huì)沖突,二者之間總會(huì)有一個(gè)中斷不能觸發(fā)
作者: yzwzfyz    時(shí)間: 2023-6-26 11:27
串行通訊是有起始脈沖的。
當(dāng)你額外【拉高拉低電平】,對(duì)方會(huì)進(jìn)行前導(dǎo)脈沖探知,當(dāng)然必定是探知失敗,從而放棄通訊開始。這需要一段時(shí)間△t。只要你躲過△t,再進(jìn)行通訊,則是可行的。
但:你在通訊過程中(含通訊結(jié)束時(shí)間)內(nèi),進(jìn)行【拉高拉低電平】操作會(huì)干擾正常通訊。
每次間隔時(shí)間長一點(diǎn),是可以的。
另注意,【拉高拉低電平】后,TX的電平恢復(fù)也是需要一點(diǎn)時(shí)間的(線路的電感、電容效應(yīng))。
作者: Longan.Wang    時(shí)間: 2023-6-26 14:04
應(yīng)該可行,先把PA9當(dāng)GPIO使用,再利復(fù)用成Tx pin
作者: Xiuer66    時(shí)間: 2023-6-27 11:18
Longan.Wang 發(fā)表于 2023-6-26 14:04
應(yīng)該可行,先把PA9當(dāng)GPIO使用,再利復(fù)用成Tx pin

我又試了一下,這樣可行,拉高拉低電平結(jié)束后,再復(fù)用成Tx pin后可以正常發(fā)送數(shù)據(jù)
作者: changhz    時(shí)間: 2023-6-28 10:03
百度keil V9.61

作者: dwping    時(shí)間: 2023-7-2 15:43
在STM32單片機(jī)中,PA9引腳(USART1_TX)可以通過配置實(shí)現(xiàn)你描述的功能。  首先,你可以將PA9引腳配置為通用推挽輸出模式,并將其輸出電平設(shè)置為高電平(拉高)。這可以使用GPIO_Init()函數(shù)或類似的函數(shù)來完成。  然后,當(dāng)你需要喚醒模塊時(shí),可以通過將PA9引腳設(shè)置為低電平(拉低),再恢復(fù)為高電平來產(chǎn)生上升沿。這里需要注意的是,高低電平的切換需要遵循一定的時(shí)間間隔并控制切換的時(shí)間。  當(dāng)你完成喚醒模塊后,你可以將PA9引腳重新配置為USART1的TX功能,然后通過向USART數(shù)據(jù)寄存器(USART_DR)寫入數(shù)據(jù)來發(fā)送數(shù)據(jù)。這個(gè)過程可以通過設(shè)置USART的相關(guān)寄存器以及使用USART_SendData()函數(shù)來完成。  需要注意的是,在切換PA9引腳的功能和電平狀態(tài)之前,應(yīng)確保已正確初始化并配置了相應(yīng)的GPIO和USART模塊,同時(shí)遵循GPIO和USART的相關(guān)操作流程。  請(qǐng)參考ST官方提供的參考手冊(cè)、庫函數(shù)文件以及相關(guān)的開發(fā)文檔,以便獲取更詳細(xì)和準(zhǔn)確的信息,根據(jù)具體情況進(jìn)行配置和實(shí)現(xiàn)。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1