OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2621|回复: 7

关于串口通信准确性问题,请各位懂得大神帮帮我。谢谢

[复制链接]

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
发表于 2017-12-8 13:08:31 | 显示全部楼层 |阅读模式
5金钱
STM32RCT6通过串口与上位机进行通信,内部ADC通过定时器设置采样频率为1kHz,双传到上位机中 上位机1s内采集到的数据为998个,说明丢掉了两个数据,请问我的通信正确吗?能不能有理论的支撑说明下我的通信准确性呢?谢谢各位,辛苦您了

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2017-12-8 13:33:19 | 显示全部楼层
请问有没有知道的 麻烦告知一下 谢谢
回复

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2017-12-8 14:46:32 | 显示全部楼层
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2017-12-8 15:33:43 | 显示全部楼层
有个间接的办法。

设置一个累加变量,假如说是counter=0,然后每当单片机向上位机发送一次数据就counter++;通过定时器得到每1s触发一次的中断,在中断中奖counter的数值通过这个串口或者别的串口发送到上位机,同时对counter清0.这样就知道,到底是上位机接收的时候漏掉了,还是单片机自己少发送了数据。
十六进制带我飞。
回复

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2017-12-8 15:53:51 | 显示全部楼层
DreamWaterPro 发表于 2017-12-8 15:33
有个间接的办法。

设置一个累加变量,假如说是counter=0,然后每当单片机向上位机发送一次数据就counter ...

是的 我是用这种方法验证的。验证出来我1s接收998个数据。丢了两个  这样的结果说明我的通信准确吗?
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2017-7-30
在线时间
21 小时
发表于 2017-12-8 16:33:07 | 显示全部楼层
加上CRC校验啊。。。。。。[mw_shl_code=c,true]const uint CRCTable[256]=
{
        0, 4129, 8258,12387,16516,20645,24774,28903,
        33032,37161,41290,45419,49548,53677,57806,61935,
        4657,  528,12915, 8786,21173,17044,29431,25302,
        37689,33560,45947,41818,54205,50076,62463,58334,
        9314,13379, 1056, 5121,25830,29895,17572,21637,
        42346,46411,34088,38153,58862,62927,50604,54669,
        13907, 9842, 5649, 1584,30423,26358,22165,18100,
        46939,42874,38681,34616,63455,59390,55197,51132,
        18628,22757,26758,30887, 2112, 6241,10242,14371,
        51660,55789,59790,63919,35144,39273,43274,47403,
        23285,19156,31415,27286, 6769, 2640,14899,10770,
        56317,52188,64447,60318,39801,35672,47931,43802,
        27814,31879,19684,23749,11298,15363, 3168, 7233,
        60846,64911,52716,56781,44330,48395,36200,40265,
        32407,28342,24277,20212,15891,11826, 7761, 3696,
        65439,61374,57309,53244,48923,44858,40793,36728,
        37256,33193,45514,41451,53516,49453,61774,57711,
        4224,  161,12482, 8419,20484,16421,28742,24679,
        33721,37784,41979,46042,49981,54044,58239,62302,
        689, 4752, 8947,13010,16949,21012,25207,29270,
        46570,42443,38312,34185,62830,58703,54572,50445,
        13538, 9411, 5280, 1153,29798,25671,21540,17413,
        42971,47098,34713,38840,59231,63358,50973,55100,
        9939,14066, 1681, 5808,26199,30326,17941,22068,
        55628,51565,63758,59695,39368,35305,47498,43435,
        22596,18533,30726,26663, 6336, 2273,14466,10403,
        52093,56156,60223,64286,35833,39896,43963,48026,
        19061,23124,27191,31254, 2801, 6864,10931,14994,
        64814,60687,56684,52557,48554,44427,40424,36297,
        31782,27655,23652,19525,15522,11395, 7392, 3265,
        61215,65342,53085,57212,44955,49082,36825,40952,
        28183,32310,20053,24180,11923,16050, 3793, 7920
};

u32 crc_fun(uchar *pbuf, uchar numc)
{
        u8 s1;
        u32 checksum;
        checksum=0;
        for(s1=0;s1<numc;s1++)
        {
                checksum=(checksum<<8)^CRCTable[(checksum>>8)^pbuf[s1]];
        }
        return checksum;
}[/mw_shl_code]
回复

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2017-12-8 19:13:12 | 显示全部楼层
lun 发表于 2017-12-8 16:33
加上CRC校验啊。。。。。。[mw_shl_code=c,true]const uint CRCTable[256]=
{
        0, 4129, 8258,12387,1651 ...

我有的时候时准确传输的,我想咨询我这样的传输正确么?有什么指标说明传输的准确性吗
回复

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2017-12-8 21:32:02 | 显示全部楼层
请问有人知道吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-24 07:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表