很少见到无线摇控器用UART发数据的,这样收发的程序都比较简单了 |
你先试一下能不能用2400的波特率发数据,如果不能用2400波特率发数据,也就不能用2400波特率接收数据,有可能是波特率太低了,UART所在的APB时钟太高了,降低UART所在的APB时钟试一下。 |
你只需要计算打点的位置,UART的数据包含起始信号(固定为0),8位数据,停止信号(固定为1),UART一个字节有10位数据 |
昨天看了一个短视频让我深有感触《我不帮你谁帮你》,回想自己刚入门的时候也是遇到了很多困难,也得到过很多热心前辈的帮助。这里我就公布正确答案,这个波形是UART,是大多数入门单片机所学的第一个通讯接口,这个UART的波特率是2400。![]() 从上面这个图片可以看出最小的频率是2425,由此可以看出波特率是2400。 ![]() 这样设置解码,就可以用UART,2400波特率解码这个协。 ![]() 这样就得到了解码后的数据, 一共4个字节,0xA5,0xF1,0x0E,0x5A 很明显0xA5和0x5A是反码,0xF1和0x0E是反码,就是由这点我可以确定我这个方法解码出的数据就是正确的数据。 ![]() ![]() 另一个波形图解码出的数据, 1、0xA5,0x8A,0x75,0x5A 2、0xA5,0xB5,0x4A,0x5A 由此可以看出第1个数据是摇控器的地址,第2个数据是摇控器的键码,第3个数据是摇控器键码的反码,第4个数据是摇控器地址的反码。 |
单片机研究协会 发表于 2024-2-26 09:55 是说以我的这个方案不和你争。但人家愿意问,我就愿意回答。有原理说原理,有依据说依据。科学是大家的,螳臂挡车是徒劳且无效的。 |
lyonkon 发表于 2024-2-23 19:07 不愿意争就不要再回复了 |
单片机研究协会 发表于 2024-2-23 17:34 我不愿意再为这个方案去争,我只是说出来我的方法。楼主愿意用哪种方案去逆向,是楼主自己决定。 但是我不认为,我的方案不行。 |
lyonkon 发表于 2024-2-23 17:26 这是错误的数据 |
weispan 发表于 2024-2-23 02:00 比如每按下左键,STM32usrat总是接收到 0x70 82 33 66 55.然后将这一组数据写入程序。 usart每收到一组数据,与你设定的数据对比。如果相同灯亮。如果不同,进行下一组数据对比。 |
这个波形其实很简单的,你们都想复杂了,如果顶帖到100楼,我就公布解码方法和解码出的正确数据 |
weispan 发表于 2024-2-21 00:54 可以用stm32 usart 假设一个波特率然后尝试接受遥控器数据。接受到的数据用dma存入片内sram 。然后在线调试,可以在内存里查看接受到的值,然后微调波特率直到满意为止。 |
![]() 我把一共9个按键的波形都放上来,麻烦各位老师帮我指点一下 |
单片机研究协会 发表于 2024-1-31 02:06 正确的值,也要符合时序。相同的时序,可以用不同的系统和编码来实现。上图时序可以按自己的方式,或者符合自己单片机的方式进行编码。保持发送和接收时序正确。 至于你说的什么正确的值,我丝毫不会介意。因为优化系统和时序的时候,用到你说的那个值的几率不高。 你硬要说别人的值或者方案是错的。那你继续 |
lyonkon 发表于 2024-1-30 20:51 也许你以前做过类似的解码,不过这个跟你之前做过的不一样。 因为我知道正确答案,所以可以确定你猜错了。 |
单片机研究协会 发表于 2024-1-30 18:15 或许我猜错了,但是可以用。用单片机以我说的值,模拟这段波形时序,发送或者接受。就可以不需要知道具体的值。如果这个值能用 你说是错的吗。 我也可以随便说,某某错了 如何如何。但是,我说某人哪里错了的时候,我必须拿出依据。 |
lyonkon 发表于 2024-1-30 15:47 你猜错了,不是你想的那样 |
单片机研究协会 发表于 2024-1-30 12:35 逆向工程,允许猜测,允许测试错误。我按照上图直观的猜测,按高低脉冲平均时间,作为1bit时间。图上显示是47位。我按照最高位补0或者最低位补0进行分析。如果错了,你可以指明。 |
我看了你发的波形,大概知道怎么解了,如果愿意%,我可以提供程序和思路 |
lyonkon 发表于 2024-1-30 00:30 明显是错的,不要在这误导人 |
依次是0x7F,0X52,0XD1,0XF3,0X84,0XB5一共6个字节。我根据第一幅图猜的![]() |
这个是波形数据 |
2.13 KB, 下载次数: 7
先找到头,再记录分别记录每个高低电平宽度,再统计高低电平个数。 |
把每个按键的数据都用逻辑分析仪测一下,然后对比,找出共同点和不同点,然后才好写解码程序 |
把逻辑分析仪测到的波形数据保存一下,然后上传,这样别人才方便看到更多细节,你这个图片一放大就看不清了。 |
如果第一个位元一定是0 那就设置一个420us中断 连续扫到高电平就代表收到头帧 然后就可以读40个电平 |