首先是介紹下串列埠的相關暫存器:
這裡著重介紹下scon(序列控制暫存器)和它的工作方式。
下面是scon各位的意義。
在scon中,sm0和sm1的組合決定了序列口的工作方式.
在這裡我們串列埠資料傳送和接受用到的是方式1,當ren=1時允許序列口接收資料 得出01010000 所以scon=0x50;
而波特率我們是用9600 算出來thl=0xfd;那麼我們串列埠初始化算是做好了。
接下來只要傳入資料和輸出就ok;
首先我們要知道有兩個標誌位ti和ri分別用於傳送和接收中斷請求 當它們置1時就是向主機請求中斷,響應完中斷後就必須用軟體清零。
通俗點講就是當他們為0時就不工作,為1時就開始接收/傳送資料,完畢後繼續置0。
那麼了解上述就可以編寫**啦
(對了,sbuf就是用來接收/傳送資料的, 不過一次只能乙個位元組)
#include"reg52.h"
void
delay()
void
initdate()
void
send
(char
*pstr)
}void
recived()
if(commit==
'1')}}
}int
main()
}
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 ...
STR9串列埠多次傳送,遺漏資料
問題 用串列埠傳送三次三個資料11 22 33,始終在串列埠除錯助手上只能收到11 22,無法顯示33。用串列埠傳送5次資料11 22 33 44 55,收到11 22 55。傳送的資料與實際傳送資料不符。解決 在每次傳送的後一句加一句延時,延時太長只能進一次中斷,延時太短髮的資料還是錯誤。但五次傳...