日韩中文在线观看-欧美性综合-伊人视频在线观看-亚洲免费在线视频观看-国产偷人视频-人妻丰满熟妇岳av无码区hd-国产一级淫片a视频免费观看-国产精品交换-国产精品1区2区3区4区-美女日批视频在线观看-欧美日韩一区二区三区自拍

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

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

外設(shè)對話框

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


虛擬仿真寄存器?(VTREG)

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

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

VTREG(SxIN、SxOUT 和 SxTIME)的命名約定因器件而異。一些設(shè)備提供了不止一個 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 通信時序

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

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

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

例如:

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

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

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 */

}

主站蜘蛛池模板: 仁怀市| 灌云县| 万州区| 青州市| 龙江县| 博客| 嫩江县| 砚山县| 博罗县| 特克斯县| 枞阳县| 扎赉特旗| 星子县| 儋州市| 屏东县| 儋州市| 仁怀市| 吉木萨尔县| 西乡县| 承德县| 连云港市| 新竹县| 岳西县| 阳春市| 临清市| 桦南县| 延寿县| 江津市| 贵德县| 巴彦县| 长寿区| 宣威市| 神池县| 绥棱县| 繁峙县| 登封市| 台前县| 吉安县| 甘孜县| 松潘县| 古田县|