OpenEdv-开源电子网

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

串口能否发送连续的高电平

[复制链接]

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-10-14
在线时间
22 小时
发表于 2016-1-15 10:52:58 | 显示全部楼层 |阅读模式
3金钱
我现在在做一个通讯协议,它要求串口先给一个连续的低电平,然后才是接收的数据。我知道空格是能输出8位的低电平,但它后面跟的是1位的高电平,达不到要求。有没有办法输出10位的低电平,怎么实现,求助了。。。谢谢

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

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2016-1-15 11:03:07 | 显示全部楼层
起始位是低电平,八位数据低电平,奇偶校验低电平。
回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-10-14
在线时间
22 小时
 楼主| 发表于 2016-1-15 11:27:26 | 显示全部楼层
那这样传输的格式就是9位了
回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-10-14
在线时间
22 小时
 楼主| 发表于 2016-1-15 11:28:11 | 显示全部楼层
BMN李 发表于 2016-1-15 11:03
起始位是低电平,八位数据低电平,奇偶校验低电平。

协议要求8位传输
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2016-1-15 12:46:10 | 显示全部楼层
RS232协议本身带奇偶校验位,SPI不带这些,不知道你能不能用。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11555
金钱
11555
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-1-15 13:51:32 | 显示全部楼层
到底是要高还是低?不过都不好办。

串口平时必须保持为高,
而起始位必须为低,结束时再拉高(结束位)。
这是串口原理所要求的,因为接收方要靠下降沿来同步内部时钟的相位。

所以,要求长时间的低电平,用串口是办不到的。
用IO口不好做。

可以从协议上想办法。


回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-10-14
在线时间
22 小时
 楼主| 发表于 2016-1-15 14:40:30 | 显示全部楼层
xuande 发表于 2016-1-15 13:51
到底是要高还是低?不过都不好办。

串口平时必须保持为高,

额,可否举个例子,谢谢
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11555
金钱
11555
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-1-15 14:50:36 | 显示全部楼层
Leejasing 发表于 2016-1-15 14:40
额,可否举个例子,谢谢


要这个电平做什么,帧起始信号?

协议方法多的是。


回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-10-14
在线时间
22 小时
 楼主| 发表于 2016-1-15 15:00:28 | 显示全部楼层
xuande 发表于 2016-1-15 14:50
要这个电平做什么,帧起始信号?

协议方法多的是。

额,波特率设置的是1200,然后必须是在串口发送至少8.33ms的低电平后的数据有效。用的是SDI-12协议。。。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11555
金钱
11555
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-1-15 15:04:45 | 显示全部楼层

不明白。

回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-10-14
在线时间
22 小时
 楼主| 发表于 2016-1-15 15:18:28 | 显示全部楼层

QQ截图20160115151603.png
就是采集器发了一个指令过来后,传感器要返回至少8.33ms(也就是10位)的低电平,然后后面的数据才有效。。。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11555
金钱
11555
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-1-15 16:43:53 | 显示全部楼层

只能先用IO口,然后再配置为串口。

这时候协议很重要了,要保证接收方先准备好。


回复

使用道具 举报

13

主题

276

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2014-6-20
在线时间
146 小时
发表于 2016-1-15 18:17:40 | 显示全部楼层
我觉得有可能需要使用IO口模拟才行,硬件感觉不行
回复

使用道具 举报

1

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2013-10-8
在线时间
24 小时
发表于 2016-1-15 19:06:27 | 显示全部楼层
硬件不知道,IO口模拟+1
回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-10-14
在线时间
22 小时
 楼主| 发表于 2016-1-15 20:32:29 | 显示全部楼层
313668972 发表于 2016-1-15 18:17
我觉得有可能需要使用IO口模拟才行,硬件感觉不行

要发送的数据有很多,而且系统是在UCOS下的,延时会造成数据的不准确,感觉。。。。
回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-10-14
在线时间
22 小时
 楼主| 发表于 2016-1-15 20:33:27 | 显示全部楼层
yutianxiang618 发表于 2016-1-15 19:06
硬件不知道,IO口模拟+1

我现在先发一个空字符然后是数据,但不清楚为什么只有1个命令有效,其余的不行。。。
回复

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2015-11-24
在线时间
5 小时
发表于 2016-1-16 22:27:59 来自手机 | 显示全部楼层
把TX置为推挽输出,拉低,然后继续复用功能用串口。DMX512的起始我就是这么用的
回复

使用道具 举报

13

主题

276

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2014-6-20
在线时间
146 小时
发表于 2016-1-19 22:29:06 | 显示全部楼层
Leejasing 发表于 2016-1-15 20:32
要发送的数据有很多,而且系统是在UCOS下的,延时会造成数据的不准确,感觉。。。。

确实有这个问题,如果有UCOS,时钟时钟是10ms或5ms(看配置或系统版本),很容易被打断
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 16:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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