用tcl语言实现串口数据的读取

用脚本实现了从pc到设备之间的串口连接,现在的图形界面类似于secureCRT,可以进行login、查询和修改各种配置等。

proc ComSetup {ComPort ComRate} {
set iChannel [open $ComPort w+]
set rate $ComRate
fconfigure $iChannel -mode $ComRate,n,8,1
fconfigure $iChannel -blocking 0
fconfigure $iChannel -buffering none
fileevent $iChannel readable ""
return $iChannel
}
proc GetData {iChannel} {
global output
global timeout 
update
after $timeout
set cap [read -nonewline $iChannel]
return "$cap"
}

proc write32 {addr data } {
	global iChannel
	global str_write
	global timeout 

	puts [GetData $iChannel]
	puts -nonewline $iChannel "\r"
	puts -nonewline $iChannel "$str_write $addr $data \r"
	puts -nonewline $iChannel "\r"
}
proc read32 {addr } { 
	global iChannel
	global output
	global str_read
	global timeout 
	puts  $iChannel "\r"
	
	puts [GetData $iChannel]
	puts -nonewline $iChannel "\r"	
	puts -nonewline $iChannel "$str_read $addr \r"
	puts [GetData $iChannel]
	set output [GetData $iChannel]
	return [string range   $output  24 34]

}
set str_write "fpga_spi w"
set str_read  "fpga_spi r"
set timeout 100

set ComPort COM3
set ComRate 115200
set iChannel [ComSetup $ComPort $ComRate]


puts -nonewline $iChannel "\r"
after $timeout
puts [GetData $iChannel]
puts -nonewline $iChannel "root\r"
after $timeout
puts [GetData $iChannel]
puts -nonewline $iChannel "root\r"


write32 1 1

read32 2

read32 4
 
after $timeout
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值