首页 新闻 会员 周边

C#串口通讯求助

0
悬赏园豆:200 [待解决问题]

公司让写一个计算机和设备(场强仪)之间通过串口进行通讯的软件。下面是要求,求大神帮忙,话说我才来公司十天就让我写这个。刚刚看了串口通讯,现在会用串口发送接收字符串了。

软件的目的很简单,允许用户手动填写测试数据,然后把填写的数据按照下面的格式通过串口发送给设备,设备读到你发送的数据后,返回一条报文FE FE FE 05 00 F0 00 00 00 00 00 00 F0 AA 0D 0A,表示你发送成功。

 

计算机与场强仪之间采用串口通信
传输协议:
波特率 115200B/S,无校验,一位停止位。
帧格式:
1:频谱分析数据校准
//频谱分析变量校准值数据结构
typedef struct _FREQ_PARSER_CALIB_
{
u8 PreCode1; //前导码 0x55
u8 PreCode2; //前导码 0x55
u8 PreCode3; //前导码 0xaa
u8 PreCode4; //前导码 0xaa
float FreqPower0; //功率值在-5~0dBuV之间的校准数据
float FreqPower0_5; //功率值在0~5dBuV之间的校准数据
float FreqPower5_10; //功率值在5~10dBuV之间的校准数据
float FreqPower10_15; //功率值在10~15dBuV之间的校准数据
float FreqPower15_20; //功率值在15~20dBuV之间的校准数据
float FreqPower20_25; //功率值在20~25dBuV之间的校准数据
float FreqPower25_30; //功率值在25~30dBuV之间的校准数据
float FreqPower30_35; //功率值在30~35dBuV之间的校准数据
float FreqPower35_40; //功率值在35~40dBuV之间的校准数据
float FreqPower40_45; //功率值在40~45dBuV之间的校准数据
float FreqPower45; //功率值在45~50dBuV之间的校准数据

}FREQ_PARSER_CALIB;

数据传输过程中采用小端数据格式(低字节在前)

如果发送数据成功 则场强仪返回以下报文
FE FE FE 05 00 F0 00 00 00 00 00 00 F0 AA 0D 0A

 


2:场强测试 数据校准
//场强测试 变量校准值数据结构
typedef struct _RSSI_TEST_CALIB_
{
u8 PreCode1; //前导码 0xaa
u8 PreCode2; //前导码 0xaa
u8 PreCode3; //前导码 0x55
u8 PreCode4; //前导码 0x55
float RssiPower0; //功率值在-5~0dBuV之间的校准数据
float RssiPower0_5; //功率值在0~5dBuV之间的校准数据
float RssiPower5_10; //功率值在5~10dBuV之间的校准数据
float RssiPower10_15; //功率值在10~15dBuV之间的校准数据
float RssiPower15_20; //功率值在15~20dBuV之间的校准数据
float RssiPower20_25; //功率值在20~25dBuV之间的校准数据
float RssiPower25_30; //功率值在25~30dBuV之间的校准数据
float RssiPower30_35; //功率值在30~35dBuV之间的校准数据
float RssiPower35_40; //功率值在35~40dBuV之间的校准数据
float RssiPower40_45; //功率值在40~45dBuV之间的校准数据
float RssiPower45; //功率值在45~50dBuV之间的校准数据
}RSSI_TEST_CALIB;

数据传输过程中采用小端数据格式(低字节在前)

如果发送数据成功 则场强仪返回以下报文
FE FE FE 05 00 F0 00 00 00 00 00 00 F0 AA 0D 0A

3:回读 频谱分析 数据校准
上位机发送以下命令
FE FE FE 05 00 20 00 00 00 00 00 00 20 AA 0D 0A
场强仪返回 频谱分析校准数据
数据格式 与 频谱分析数据校准 中的格式相同;
4:回读 场强测试 数据校准
上位机发送以下命令
FE FE FE 05 00 21 00 00 00 00 00 00 21 AA 0D 0A
场强仪返回 场强测试 校准数据
数据格式 与 场强测试数据校准 中的格式相同;

 

shatter_me的主页 shatter_me | 初学一级 | 园豆:2
提问于:2016-05-13 16:23
< >
分享
所有回答(5)
0

一步一步写吧,只是个测试的程序要求也不高,是你表现的时候了!

刘宏玺 | 园豆:14020 (专家六级) | 2016-05-13 16:35
0

这就是接受发送数据了。

发送数据:先把数据按照一定格式拼接起来,然后发送相应端口即可。

接收消息:判断发送数据是否正确,然后返回相应的数据即可

CodeHsu | 园豆:5468 (大侠五级) | 2016-05-13 16:46
0

先多看几遍逻辑,当你清楚需要发送什么 接收什么,代码不是啥问题,计算机很蠢的,你那协议那么清楚,还怕不好写?

风醉 | 园豆:1197 (小虾三级) | 2016-05-13 17:26
0

先按接收格式拼数据,传过去,然后检测收到的数据是否满足预期

jello chen | 园豆:7336 (大侠五级) | 2016-05-14 12:16
0

无记 | 园豆:309 (菜鸟二级) | 2016-05-20 18:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册