麻豆一区二区三区蜜桃免费_中文字幕Va一区二区三区 _国产成人综合久久二区_丰满多毛的大隂户毛茸茸_国产麻豆剧果冻传媒免费老狼_无码人妻精品一区二区三区久久久 _亚洲中文无码精品卡通_蜜臀亚洲AV永久无码精品老司机

【ARM】如何使用Keil仿真中的UART通信?-2022

UART 通信或 RS232 串行接口由許多微控制器提供。μVision 調(diào)試器模擬 UART 接口并提供串行窗口進(jìn)行通信。串行 Windows 的操作類似于終端。作為替代方案,可以使用ASSIGN 命令將串行輸出重定向到任何 COM 端口。

外設(shè)對(duì)話框

通過菜單?Peripherals提供的UART或Serial對(duì)話框顯示微控制器的串行接口狀態(tài)。這些對(duì)話框允許查看系統(tǒng)的通信波特率和其他參數(shù)。


虛擬仿真寄存器?(VTREG)

模擬?UART 通信的 VTREG 實(shí)現(xiàn)如下:

VTREGDescription
SxIN是串行接口 x的輸入緩沖區(qū)。SxIN 接受由目標(biāo)程序讀取的 8 位或 9 位值。讀取 SxIN 以確定輸入緩沖區(qū)何時(shí)準(zhǔn)備好接受另一個(gè)字符。特殊值 0xFFFF 表示前一個(gè)值已被處理并且可以寫入新值。其他特殊值可用于模擬奇偶校驗(yàn)錯(cuò)誤或幀錯(cuò)誤。
SxOUT是串行接口 x的輸出緩沖區(qū)。μVision 將 8 位或 9 位值(按編程)復(fù)制到 SxOUT VTREG。
SxTIME定義串行接口x的波特率時(shí)序。當(dāng) SxTIME 為 1 時(shí),μVision 使用編程的波特率模擬串行接口的時(shí)序。當(dāng) SxTIME 為 0(默認(rèn)值)時(shí),編程的波特率時(shí)序被忽略,串行傳輸是瞬時(shí)的。

VTREG(SxIN、SxOUT 和 SxTIME)的命名約定因器件而異。一些設(shè)備提供了不止一個(gè) UART 接口。因此,VTREG 名稱可能以 S0 或 S1 為前綴。使用命令DIR VTREG檢查 UART 接口的 VTREG 名稱。

通過?SxIN VTREG 輸入字符

SxIN VTREG 代表微控制器片上串行端口的輸入。從命令行窗口使用的以下命令將值輸入到串行流中。此外,串行窗口可用于輸入串行端口的值。

SIN = 'A' ????/* Input the letter A to the serial stream */

SIN = 0x019E /* Input the 9-bit value 19Ex to the serial stream */

SIN = 0xA9 ?/* Input value 0xA9 to I/O stream for the UART */

控制?UART 通信時(shí)序

SxTIME VTREG 允許控制模擬串行端口的時(shí)序。

l 值為?1 表示串行端口時(shí)序與目標(biāo)硬件相同。使用此值來模擬串行端口 I/O 上的波特率的含義。

l 值為?0 表示串行輸入和輸出是瞬時(shí)發(fā)生的。當(dāng)波特率不相關(guān)或加速串行輸出時(shí)使用此值。

例如:

STIME = 0 /* 將 Serial 0 設(shè)置為 FAST 時(shí)序 */

STIME = 1 /* 設(shè)置 Serial 0 以獲得準(zhǔn)確的計(jì)時(shí) */

UART 仿真示例

以下調(diào)試腳本以大約?19.200 波特的速度發(fā)送字符“A”-“Z”。

signal void serialA_Z (void) {

??char ch;

??for (ch = 'A'; ch < 'Z'; ch++) ??{

???S0IN = ch; ?????????????????????????????/* Send character */

???twatch (CLOCK / 900);

??} ??????????????????????????????????????/* Repeat */

}