久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

stm32 USART 的學習

作者:simeto   來源:simeto的空間   點擊數:  更新時間:2014年06月20日   【字體:

錯誤是最有效的學習了,不錯我是沒辦法集中注意力去學習,雖然很簡單,但是還是詳細有條理的寫一下找到錯誤,不能靠碰運氣寫程序,浪費時間精力。 

 

1.循環方式的USART 

1.1功能:僅實現不停向PC發送數據

 1.2實現步驟:

①首先確定串口,STM32的PA9和PA10對應的是 串口1 ,其中串口1時鐘的打開函數為RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);可見串口1為高速外設時鐘(APB2),具體的需要再參考數據手冊 。

②配置程序包括:RCC配置 (不知道具體干什么的);GPIO配置;NVIC配置(中斷配置,循環用不到);USART配置

③RCC配置 除了時鐘配置需要修改,其他暫時沒有發現不同,需要打開中斷時鐘,GPIO時鐘,還有AFIO復用時鐘(?,這個可以深入看一看,不太明白,功能是當外設用的復用IO就需要開啟,這里應該是不需要的,參考http://blog.sina.com.cn/s/blog_5d9349d10100u9ni.html)

④GPIO配置 TX設置為復用推挽輸出(GPIO_Mode_AF_PP)RX設置為懸空輸入(GPIO_Mode_IN_FLOATING)

⑤ USART配置 這個寫的是五花八門,問題多半出在這里,大分歧是需不需要進行時鐘的配置,打開庫文件,找到USART_ClockInitTypeDef結構體的定義:

typedef struct

{

uint16_t USART_Clock;

uint16_t USART_CPOL;

uint16_t USART_CPHA; //這個有問題,有兩種配置方式USART_CPHA_1Edge和USART_CPHA_2Edge,不知道有沒有影響

uint16_t USART_LastBit;

} USART_ClockInitTypeDef;

然后分別初始化時鐘和串口,使能串口

⑥發送數據函數  這個從技術上出問題的概率不大,但從猜測的角度,我覺得很有可能是這里的問題,STM32庫里有發送個數據的函數USART_SendData(串口,16位無符號整型數據),然后等待系統響應,判斷系統相應的方法是通過判斷USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET時,然后繼續執行,找到該函數,主要是

 if ((USARTx->SR & USART_FLAG) != (uint16_t)RESET)

{

bitstatus = SET;

}

else

{

bitstatus = RESET;

}返回bitstatus,這個我是不太看得懂,因為不知道USARTx->SR(狀態寄存器)DR(數據寄存器)和USART_FLAG_TXE分別是如何操作的。但是有本書里提供了自己寫的驅動,里面說STM32固件中的字符發送函數不帶發送完成的判斷就馬上返回,所以會出現掉數據的現象,書中的函數應該問題不大,不過先試一試,我在做實驗時,將一個燈綁在發送程序上,當發送時,燈被點亮,而復位后,燈一直在閃爍,這就是說程序正常執行了,也就是說while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET)這個判斷一直可以通過,這是什么情況我就得搞懂庫中的函數了。書里的代碼也是按寄存器和位寫的,搞懂也不容易啊。

 USART_FLAG_TC是發送完成標志位,USART_FLAG_TXE是發送數據寄存器空標志位,這一下清楚了,就是判斷寄存器中數據為空 ->FLAG=1->庫函數返回set->繼續執行,和預想的是一樣的,應該沒問題,但這里為什么要先和狀態寄存器先進行與運算就不太 清楚了

 

關閉窗口
主站蜘蛛池模板: 精品国产精品 | 一本色道久久综合亚洲精品高清 | 日韩在线h | 国产日韩免费视频 | 国产69精品久久久久777 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 免费观看黄网站 | 欧美操操操 | 久久av一区二区三区 | 国产免费又黄又爽又刺激蜜月al | av第一页 | 99热在线观看精品 | 亚洲永久免费观看 | 欧美日韩大片 | 手机av在线 | 91精品国产91综合久久蜜臀 | 99精品久久99久久久久 | 久久精彩视频 | av片在线观看网站 | 欧美乱淫视频 | 91麻豆精品国产91久久久更新资源速度超快 | 国产精品久久亚洲7777 | 欧美一区二区免费视频 | 精品真实国产乱文在线 | 日韩视频免费看 | 精品蜜桃一区二区三区 | 欧美精品一区二区三区一线天视频 | 久久久久久亚洲欧洲 | 综合中文字幕 | 黄视频网址 | 成人免费大片黄在线播放 | 91久久国产综合久久 | 911网站大全在线观看 | 亚洲国产偷 | 日本黄色不卡视频 | 国产午夜精品一区二区三区四区 | 国产午夜精品一区二区三区嫩草 | 国产精品久久久久久久久大全 | 日韩久久久久久 | 日韩区 | 欧美久久久久久久久 |