STM32關(guān)于USART的問題集錦
問:
本文引用地址:http://www.ex-cimer.com/article/201611/318103.htm答1:RCC_APB2PeriphClockCmd(RCC_APB2Periph_USARTx, ENABLE) for USART1 and USART6 * RCC_APB1PeriphClockCmd(RCC_APB1Periph_USARTx, ENABLE) for USART2, USART3, UART4 or UART5. *
3、stm32中的串口通信中的USART_WordLength,數(shù)據(jù)位的長度包不包括開始位哪些?
問:stm32中的串口通信中的USART_WordLength,數(shù)據(jù)位的長度包不包括開始位哪些?
答:不包括開始位,如果你有 校驗(奇 偶)的話,數(shù)據(jù)位是包括校驗位的。USART_WordLength 這個是可以設(shè) 9
4、stm32的DMA 到usart
問:把一個數(shù)組的數(shù)據(jù)傳輸?shù)経SART。設(shè)為Circular時,DMA是不是會自動不停的傳輸數(shù)據(jù)?既是main函數(shù)里沒有調(diào)用傳輸,DMA也會不停把數(shù)組的數(shù)據(jù)傳給USART?不受main控制?DMA數(shù)據(jù)傳輸還是受CPU的控制的?需要認為的調(diào)用?
答:設(shè)置成循環(huán)的只是說當數(shù)據(jù)傳輸量寄存器里面的內(nèi)容變?yōu)榱銜匦录虞d,然后重新傳輸,但是這一切前提都是進行了設(shè)置和使能(這里應(yīng)該是DMA請求,我還沒看出來別的使能方式,正在學(xué)習),但是記住只有再怎么寫好設(shè)置的子函數(shù)或者說模塊,如果沒有main里調(diào)用,不會運行的,因為單片機只執(zhí)行MAIN里的函數(shù),如果沒有調(diào)用語句,是不會自己跑到DMA設(shè)置子函數(shù)里的,也就是說不會不斷執(zhí)行。人為調(diào)用,設(shè)置一下各個寄存器,有傳輸?shù)膩碓春湍康脑O(shè)置有傳輸數(shù)據(jù)量設(shè)置等等,設(shè)置完了,開啟就可以了,CPU可以去干別的,看一下參考手冊就知道了。
5、STM32串口接收程序
問:在STM32串口接收程序里 USART_GetFlagStatus(USART1,USART_FLAG_ORE)==RESET 這句語句是什么意思?
答:查尋串口標志,為0還是1,reset 為0,set 為1,還有清除標志位的作用
6、STM32F10XX系列SPI和USART區(qū)別
問:STM32F10XX系列SPI和USART區(qū)別?我想用USATR對SD卡進行讀寫是否可行?我用USART的同步方式跟SPI是一樣的嗎?我用的STM32中的USART可以接SPI設(shè)備,它是一個同步/異步收發(fā)器。我在看開發(fā)板時看到有開發(fā)板是用SPI對SD卡進行操作的。應(yīng)該是用的SD卡的MMC/SPI模式。只是沒有見到用它的USART讀寫SD卡的例子,不知道哪有這方面的資料。
答:請先SPI和USART都沒有搞清楚,再搞用USATR對SD卡進行讀寫,我不知道你的sd卡是哪個型號,但是一般的存貯器件不會采用uart口的,SD卡是用來存儲大容量數(shù)據(jù)的,讀寫數(shù)據(jù)在速度在要求快,而uart口的速度一般不會很快,你看看你的串口調(diào)試助手就知道了,上面有波特率,所以sd卡不會用uart口來讀寫的,再說了,用什么口來讀寫sd卡都是一樣的,你只要按照datasheet 的命令格式給卡發(fā)送命令就可以操作它了,建議不要糾結(jié)這個問題!
評論