STM32F4 高主频引起的PS2遥控手柄协议移植问题
在STM32F103主板上运行正常的PS2手柄驱动协议,平移到STM32F405的板子上,遇到板子收不到手柄按键信号的情况。各种查找资料,各种测试之后,终于在这篇博文的启发下找到了问题。关于使用STM32F4驱动PS2报错这件事_煜个头头的博客-CSDN博客起因在做项目移植PS2代码的时候,本来以为简简单单的一件事,关了好几个小时的时间,读到的数据一直不正确(数据跳动不稳定),本来决定放弃,但还是决定将坑一踩到底!所以就有了这篇文章解决方向以之前排坑的经验,问题可能出在以下几个地方硬件问题IO口配置时钟树配置以及定时器配置底层驱动代码不适配(广泛流传的代码都是F103版本)问题探索硬件问题找了一块F103板子,正常驱动,排除了PS2损坏,线材断路问题。IO口配置按照官方例程配置的IO口,并测试了每个IO口输出正常,也试过修改IO口https://iam-tutu.blog.csdn.net/article/details/120644415
经过实测,在手柄读写命令中加入延时,完美解决问题。
//向手柄发送命令
void PS2_Cmd(u8 CMD)
{volatile u16 ref=0x01;Data[1] = 0;for(ref=0x01;ref<0x0100;ref<<=1){if(ref&CMD){DO_H; //输出一位控制位}else DO_L;delay_us(15);//加入延时,缓解高时钟频率造成的读写错误CLK_H; //时钟拉高DELAY_TIME; //每发送一个指令 给CLK一个电平脉冲CLK_L;DELAY_TIME;CLK_H;delay_us(15); //加入延时,缓解高时钟频率造成的读写错误if(DI)Data[1] = ref|Data[1];delay_us(15);//加入延时,缓解高时钟频率造成的读写错误}delay_us(15);
}
STM32F4 高主频引起的PS2遥控手柄协议移植问题相关推荐
- 对PS2遥控手柄与stm32单片机通信的理解(结合平衡小车之家的说明和程序)
为了更好地应用PS2遥控手柄,我想尽可能理解一下它与stm32单片机间通信控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接 ...
- 单片机右摇杆c语言函数英文,对PS2遥控手柄与stm32单片机通讯的理解(结合平衡小车之家的说明和程序)...
为了更好地应用PS2遥控手柄,我想尽量理解一下它与stm32单片机间通讯控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接下 ...
- 玩转X-CTR100 l STM32F4 l PS2无线手柄
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...
- PS2无线遥控手柄与STM32单片机通信
PS2无线遥控手柄 接下来要做一个小车玩玩,在网上淘了一个PS2无线遥控手柄,用于控制小车的前进.后退等功能. 实物图如下: 其中有两个PS2游戏摇杆,对应的驱动原理参见下文: PS2游戏摇杆原理及控 ...
- 玩转X-CTR100 l STM32F4 l PS2无线手柄-4WD智能小车
我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 前面已介绍X-CTR100控制器解码PS2无线手 ...
- 基于STM32F103的树莓派ROS小车——PS2遥控程序解析
基于STM32F103ZET6的PS2遥控ROS小车程序解析 序言 1. PS手柄介绍 2. 使用说明 2.1 引脚说明 2.2 时序图分析 3. 手柄测试 4. 程序解析 5. 仿真 6. 源码链接 ...
- PS2手柄代码移植-合泰平台
PS2手柄代码移植-合泰平台 1.PS2手柄端口及通讯协议 PS2手柄的通讯协议是SPI协议是一种高速的.全双工.同步的通信总线,并且在芯片的管脚上只占用四根线(DI.DO.CS.CLK),PS2手柄 ...
- 网站服务器高主频还是多核心,CPU核心多好还是主频高好?核心多和主频高区别介绍...
CPU Render,平均:100fps.最低:78fps.最高:148fps <古墓丽影:暗影>的Benchmark程序可以记录处理器渲染性能,所以既然是对比处理器,那么这一项性能就比较 ...
- 英特尔第十代处理器为什么不支持win7_5GHz动力澎湃 高主频多核处理器成就巅峰玩家...
频率之争永远是处理器领域无法回避的话题.高主频在游戏中所带来的高速运行,稳定帧数等特性永远是玩家们所追求的目标.随着英特尔第十代桌面及移动版酷睿处理器的发布,无论是台式整机或是笔记本平台,都已全面进入 ...
最新文章
- frps server端配置_Docker 快速搭建 mock-server
- [HAOI2007] 理想的正方形
- 创业必经之路——Paul Graham创业曲线
- css3中的渐变效果及花斑动画的实现
- js模拟3D场景效果
- 【题解】(排序) —— POJ 0811:牛的选举
- css中表居中,CSS DIV中表格居中显示
- [转]C#操作Excel开发报表系列整理
- java 纯真ip数据库_纯真IP数据库格式读取方法(JAVA/PHP/Python)
- python的setting怎么找_python基础之setting设置,变量和关键字
- 63.QT-重写QStackedWidget模仿iphone的home界面,实现左右滑动
- ffmpeg命令下载MP4视频)
- Linux 命令(244)—— reset 命令
- 国产工业机器人目前发展到了什么水平?
- 小爱同学语音API(不需要小米账号)
- js封装QQ音乐api
- 你应该具有的富人思维
- 运放放大倍数计算公式_独家秘笈|运算放大器分析
- excel快速删除空行
- 蓝桥试题 算法训练 区间k大数查询 JAVA