找回密码
 立即注册
查看: 66|回复: 7

如何看待AI8051U 8位模式和32位模式显示红外遥控键值不同

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2025-4-11 18:49:39 | 显示全部楼层 |阅读模式
[18:44:38.240]收←◆Read: UserCode=0xff00,IRCode=5632

上面的32位的。



[18:44:38.240]收←◆Read: UserCode=0xff00,IRCode=25


而8位的时候是这格式的。求指教。哪种才是正常的呢。


回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-4-11 18:53:00 | 显示全部楼层
在分析AI8051U芯片在8位模式和32位模式下显示红外遥控键值不同的现象时,首先需要明确的是,这种差异主要是由于数据位宽和处理方式的不同所导致的。以下是对这一问题的专业分析:

1. 数据位宽的影响
AI8051U芯片支持8位和32位两种工作模式。在8位模式下,数据以8位为单位进行处理,而在32位模式下,数据以32位为单位进行处理。这种位宽的差异直接影响了数据的解析和显示方式。

2. 红外遥控键值的解析
红外遥控信号通常由用户码(UserCode)和键值码(IRCode)组成。在8位模式下,由于数据位宽的限制,键值码可能被截断或重新编码,导致显示的键值与实际发送的键值不一致。而在32位模式下,由于数据位宽较大,能够完整地解析和显示键值码。

3. 具体案例分析
根据用户提供的数据:
在32位模式下,读取到的键值码为5632(0x1600)。
在8位模式下,读取到的键值码为25(0x19)。

这种差异可能是由于8位模式下,键值码的高位被截断或重新编码,导致显示的键值与32位模式下的键值不同。

4. 正常性的判断
从技术角度来看,32位模式下的键值码更接近实际发送的键值,因为它能够完整地解析和显示数据。而8位模式下的键值码由于位宽限制,可能无法准确反映实际键值。因此,32位模式下的键值码更符合正常情况。

5. 解决方案
为了确保在不同模式下都能准确解析和显示红外遥控键值,建议采取以下措施:
统一工作模式:尽量使用32位模式进行数据处理,以确保数据的完整性和准确性。
数据转换:如果必须在8位模式下工作,可以编写数据转换算法,将32位键值码转换为8位格式,以确保显示的键值与实际键值一致。
调试工具:使用调试工具对红外遥控信号进行详细分析,确保在不同模式下都能正确解析键值码。

6. 结论
AI8051U芯片在8位和32位模式下显示红外遥控键值不同的现象,主要是由于数据位宽和处理方式的差异所导致的。从技术角度来看,32位模式下的键值码更符合正常情况。为了确保数据的准确性和一致性,建议尽量使用32位模式进行数据处理,并采取相应的数据转换和调试措施。

通过以上分析,希望能够帮助用户更好地理解AI8051U芯片在不同模式下处理红外遥控键值的差异,并采取相应的解决方案。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2025-4-11 21:17:28 | 显示全部楼层
如果你是使用 printf 打印的话,参考下面这个帖子:

printf函数 的 格式参数; USB接口 使用 printf 打印数据
https://www.stcaimcu.com/thread-6864-1-1.html
(出处: 国芯技术交流网站)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2025-4-12 09:30:12 来自手机 | 显示全部楼层
乘风飞扬 发表于 2025-4-11 21:17
如果你是使用 printf 打印的话,参考下面这个帖子:

printf函数 的 格式参数; USB接口 使用 printf 打印 ...

这个用的是ai 8051u的试验箱程序。没做任何改动
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2025-4-13 11:38:35 | 显示全部楼层

[11:31:58.666]收←◆0F 0F 00 00 01 06
[11:31:59.133]收←◆0F 0F 00 00 00 0C
[11:31:59.514]收←◆0F 0F 00 00 01 08
[11:31:59.874]收←◆0F 0F 00 00 05 0E


                LED8[0] = (u8)((UserCode >> 12) & 0x0f);    //用户码高字节的高半字节
                LED8[1] = (u8)((UserCode >> 8)  & 0x0f);    //用户码高字节的低半字节
                LED8[2] = (u8)((UserCode >> 4)  & 0x0f);    //用户码低字节的高半字节
                LED8[3] = (u8)(UserCode & 0x0f);            //用户码低字节的低半字节
                                                       
                LED8[6] = IR_code >> 4;
                LED8[7] = IR_code & 0x0f;

这个是用STC32  G8K64采到的。串口显示。由此可以看出来。
                LED8[0] = (u8)((UserCode >> 12) & 0x0f);    //用户码高字节的高半字节
                LED8[1] = (u8)((UserCode >> 8)  & 0x0f);    //用户码高字节的低半字节
用户码这个遥控器都是F   显示两个 0F  组合一起就是FF

                LED8[2] = (u8)((UserCode >> 4)  & 0x0f);    //用户码低字节的高半字节
                LED8[3] = (u8)(UserCode & 0x0f);            //用户码低字节的低半字节

这里显示的都是00


                LED8[6] = IR_code >> 4;
                LED8[7] = IR_code & 0x0f;
红外键码  这里应该就是需要两个组合到一起。比如01 09 应该就是19  对应25  结论就是AI8051U中的32 32位接收可能是不对的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2025-4-13 11:57:37 | 显示全部楼层
比如看串口数据是28  01 0C  可是对应的波形是这样的。
01.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2025-4-13 14:03:07 | 显示全部楼层
串口码  0F 0F 00 00 01 05
逻辑分析仪
地址   地址取反            数据      数据取反
8个0  8个1(对应8个取反)  10101000 01010111(对应8个取反)
                          00010101 11101010

怎么也对应不出来。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2025-4-13 15:33:28 | 显示全部楼层
串口码  0F 0F 00 00 01 05
逻辑分析仪
地址   地址取反            数据      数据取反
8个0  8个1(对应8个取反)  10101000 01010111(对应8个取反)
                          原数据                       
                          00010101 11101010
                          取反后
                          取反后对应0x15  对应21                                               

总结:例程没有问题。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:34 , Processed in 0.156544 second(s), 91 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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