zacch66 2022-01-04 13:09 采纳率: 100%
浏览 47
已结题

Uart中的7 bits资料长度转换问题

7bits资料如何表示?

如题,Uart当中可以设定资料长度格式为7, 8bits等。我们最常用的就是8N1,也就是8bits/None parity/1 stop bit

img

但是在编写程式时是没有所谓7bits这种数据类型,因此我在想实际写code时应该是使用uint8_t宣告一组数组资料,例如:

uint8_t buffer[8];

buffer[0] = 0x01;
buffer[1] = 0x02;
buffer[2] = 0x03;
buffer[3] = 0x04;
buffer[4] = 0x05;
buffer[5] = 0x06;
buffer[6] = 0x07;
buffer[7] = 0x08;

然后将该资料内容做bit operation转换成7bits格式,但问题是我不太清楚7bits与8bits之间的转换关係,这是否会涉及到parity?有人知道吗?

我的想法是这样,例如7E1会将空出来的1个bit用even parity去补上,7O1也是相同的道理。但假如是7N1呢?这种状况会吃到stop bit,那是否要看硬件是否支援?

img

  • 写回答

2条回答 默认 最新

  • dceacho 2022-01-04 14:43
    关注

    这个东西是需要收发双方协商的,
    如果发送方发8E1,接收方以为对面发过来的是7E1,当然会吃到parity
    双方协商一致后不会存在该问题的,硬件上收倒7位后一般会放在一个字节的低7位,最高位空着。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 修改了问题 1月4日
  • 修改了问题 1月4日
  • 展开全部

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来