❓問題:用串列埠傳送三次三個資料11 22 33,始終在串列埠除錯助手上只能收到11 22,無法顯示33。
用串列埠傳送5次資料11 22 33 44 55,收到11 22 55。
傳送的資料與實際傳送資料不符。
✅ 解決:在每次傳送的後一句加一句延時,延時太長只能進一次中斷,延時太短髮的資料還是錯誤。但五次傳送時可以收到11 22 44 55。
繼續改進,每句串列埠傳送後加入獲取傳送完成的flag語句,(當tx傳送完成後flag置1),再接著while(!flag);。兩句合起來即等待此次串列埠資料傳送完成,再執行後面的語句。
加入等待完成功能語句後,串列埠可以實現正常傳送。
51串列埠傳送資料的格式
序列口控制暫存器scon sm0 sm1 序列口工作方式控制位 sm0 sm1 工作方式 功能 波特率 00 方式0 同步移位暫存器 fosc 12 01 方式1 8位uart 可變 t1溢位率 10 方式2 9位uart fosc 64或fosc 32 11 方式3 9位uart 可變 t1溢位率...
STM32F407 串列埠資料傳送
1.常用的串列埠相關暫存器 2.串列埠操作相關庫函式 省略入口引數 void usart init 串列埠初始化 波特率,資料字長,奇偶校驗,硬體流控以及收發使能 void usart cmd 使能串列埠 void usart itconfig 使能相關中斷 void usart senddata ...
07 24 c51串列埠 資料傳送 資料接收
首先是介紹下串列埠的相關暫存器 這裡著重介紹下scon 序列控制暫存器 和它的工作方式。下面是scon各位的意義。在scon中,sm0和sm1的組合決定了序列口的工作方式.在這裡我們串列埠資料傳送和接受用到的是方式1,當ren 1時允許序列口接收資料 得出01010000 所以scon 0x50 而...