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

【实战经验】CEC 输出的数据和数据长度始终不匹配

[复制链接]
zero99 发布时间:2017-4-10 10:01
CEC 输出数据始终和输出长度不匹配7 Y2 b" f4 _4 f/ J
; @1 T7 F& s4 c/ \9 h# [
前言7 ^7 L+ g6 C3 Q; j3 Q9 ^7 Z% A/ S' k( Q
      客户反应使用我们的STM32F446 的CEC 库的时候,输出的数据和数据长度始终不匹配,跟电视通信不正常,如果输出的数据始终比长度多一个字节.客户试着按字节数减一去做输出,但是又不能输出一个字节的情况.
4 Q* u, X; L" W; ]+ B8 S3 A+ `3 W0 q1 I! A# h1 o; W+ D
8 b' y+ W! G5 W
调研
, f" v5 Q$ P# Y4 y首先,我们来看看CEC 发送数据的过程:' E5 U) P* l" K$ y* E: Y9 ^
    1,数据格式,包含一个起始位,header OPCODE 以及0 到14 个字节的OPERAND 数据.以及一个EOM 和ACK.
: e8 l% J2 @6 w/ A# l
31.png , n% W0 G: D- U& r4 C- d3 L" c
* `" v. `$ o5 R% i6 g  I0 N
    2 发送过程: 从下面两个寄存器的描述来看,当我们发送最后一个字节之前,要将EOM 置位.而每一次发送数据的第四位时候,它会发出TXBR 的请求(请求发送下一个数据)
1 n5 S9 o0 u& k" x, d- \: h1 P
32.png
) a& c( X4 i5 T/ B/ K4 H+ l, S7 \" ~. i2 Z5 S+ V3 S$ b
    3 发送函数: 当客户在调用下面发送函数的时候,数据跟长度不匹配.
. `% N. k. M- x0 R" S4 {; k( i             HAL_CEC_Transmit_IT(&hcec,InitiatorAddress ,DestinationAddress, (uint8_t *)&Tab_Tx, TxSize);
" V9 O8 ^4 F1 O' ]1 X
33.png . \, V' O5 B$ n, i
   例如 :发送2 个字节(TxSize=2) 0x44 和0x43,但是我在后面发觉多出来一个字节(如下图),而如果我们将TxSize 设为1,反而数据发送正确. 从上面的函数来看,并没有什么错误.它仅仅开始发送了HEADER 和开始发送.
; K% Q1 U! b( r0 Z8 i$ m
34.png , s9 q4 u3 v" s1 v* k" H" Y
' ]4 s8 v( P7 v# T# i6 `: N6 H
    4 中断处理函数:8 Q7 _1 R; }# o: C9 j
35.png
* e" S- R( v8 g( d. N8 P
- n9 R; W1 |8 ?  [$ c从上面的函数来看当我们发送字节数大于0 的时候,他每次发送一个字节,而当等于0 的时候它置位EOM,并且再次放了一个字节进入TXDR,看到这里就明白了,错误出现在这里了,既然是发送字节为0 了,为什么还要放一个字节呢?这里应该是最后一个字节的时候,置位EOM 和发送一个字节数据,而当再次中断来这里SIZE 变为0 的时候什么都不做.1 V8 w9 ]: H; r# M- O5 A( ?3 Y6 c* I
; }' k' ^( j9 s0 y: s; ]. h
解决方法:1 V- \7 b9 O1 j' I# Q4 C7 ?& M; l
    按照下面的方法修改中断处理函数,送给客户验证,能够正常发送数据并且跟电视通信正常
! a' v" d* G1 |
36.png $ [& |. U  c3 A: P

; l! Y8 r  b. i' ]& M! B( d- e' D& o% Q0 S$ i, Z5 v/ \0 A2 T) ~3 ~
文档下载
7 j& }- L6 L+ K9 \' K+ \1 s# B9 f
7 _' l9 `" O  i+ |更多实战经验$ j0 X2 w; z. ~; ^- v
赞 收藏 评论2 发布时间:2017-4-10 10:01

举报

2个回答
feixiang20 回答时间:2017-6-28 12:51:47
是说是开发者自己编写错误么
烛音 回答时间:2022-6-21 17:49:28
为啥我通过CEC给TV发命令,TV没反应8 B) r! T+ e* \' N$ H2 _
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版