你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1818|回复: 4

串口帧和UART定义的关系

[复制链接]

2

主题

0

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-7-6 14:36:16 | 显示全部楼层 |阅读模式
单片机接收的数据帧(其中不包括帧头:0x55)
typedef struct
{
unsigned charucIndex;                  //从器件编号
unsigned charucOprType;               //操作类型,读00写01
unsigned charucOprAddr2;             //Addr2  地址低位
unsigned charucOprAdd1;            //Addr1  地址中间
unsigned charucOprAdd0;             //Addr0  地址高位
unsigned charucOprDataLen;          //len   数据长度(ucDataBuffer内的数据长度)
unsigned charucXorValue;            //Xor   校验数据(异或)
unsigned charucDataBuffer[256];       //DataBuffer 数据
}


/* USARTx configured as follows:
        - BaudRate = 115200 baud  
        - Word Length = 8 Bits
        - One Stop Bit
        - No parity
        - Hardware flow control disabled (RTS and CTS signals)
        - Receive and transmit enabled
  */
  USART_InitStructure.USART_BaudRate = 115200;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_Parity = USART_Parity_No;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

我定义的串口帧:
帧头0x55+ucIndex+ucOprType+ucOprAddr2+ucOprAdd1+ucOprAdd0+ucOprDataLen+ucXorValue+ucDataBuffer[256])是和UART定义里面的起始位+bit0+bit1+bit2+bit3+bit4+bit5+bit6+bit7(奇偶校验位)+停止位是一码事得一一对应吗?串口设置的是无奇偶校验,而我帧里面定义的是有ucXorValue奇偶校验,bit7(奇偶校验位)就得是我的ucXorValue吗?现在我UART里面设置的是wordlength 8bit这和ucOprDataLen也是一回事吗?而且串口设置有1位停止位,而我帧定义里面似乎没有?

是我搞混了还是这两者无关系呢?很迷惑,高手大神请解惑
<
回复

使用道具 举报

8

主题

87

回帖

3

蝴蝶豆

金牌会员

最后登录
1970-1-1
发表于 2014-7-8 15:09:01 | 显示全部楼层

回复:串口帧和UART定义的关系

 两码事 无任何关联  
回复 支持 反对

使用道具 举报

2

主题

295

回帖

0

蝴蝶豆

初级会员

最后登录
2018-4-6
发表于 2014-7-12 08:24:49 | 显示全部楼层

RE:串口帧和UART定义的关系

Xor值有可能是DataBuffer 数据的校验值, ucOprDataLen应该是DataBuffer 的数据长度
回复 支持 反对

使用道具 举报

15

主题

930

回帖

29

蝴蝶豆

金牌会员

最后登录
2020-8-17
发表于 2014-7-14 18:52:38 | 显示全部楼层

RE:串口帧和UART定义的关系

串口帧:是一种自定义的数据传输协议,只是对数据包的翻译手段,并不能影响数据的误码率。
UART定义:是串口外设的属性,两个串口必须使用相同的设置才能正确的传输byte。
两种没有关系,是两个概念。
回复 支持 反对

使用道具 举报

9

主题

178

回帖

0

蝴蝶豆

高级会员

最后登录
1970-1-1
发表于 2014-7-15 10:20:45 | 显示全部楼层

RE:串口帧和UART定义的关系

不一样的,一个是上层自定义应用协议帧,uart定义则是串口的物理属性
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版