在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遥控手柄协议移植问题相关推荐

  1. 对PS2遥控手柄与stm32单片机通信的理解(结合平衡小车之家的说明和程序)

    为了更好地应用PS2遥控手柄,我想尽可能理解一下它与stm32单片机间通信控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接 ...

  2. 单片机右摇杆c语言函数英文,对PS2遥控手柄与stm32单片机通讯的理解(结合平衡小车之家的说明和程序)...

    为了更好地应用PS2遥控手柄,我想尽量理解一下它与stm32单片机间通讯控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接下 ...

  3. 玩转X-CTR100 l STM32F4 l PS2无线手柄

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...

  4. PS2无线遥控手柄与STM32单片机通信

    PS2无线遥控手柄 接下来要做一个小车玩玩,在网上淘了一个PS2无线遥控手柄,用于控制小车的前进.后退等功能. 实物图如下: 其中有两个PS2游戏摇杆,对应的驱动原理参见下文: PS2游戏摇杆原理及控 ...

  5. 玩转X-CTR100 l STM32F4 l PS2无线手柄-4WD智能小车

    我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 前面已介绍X-CTR100控制器解码PS2无线手 ...

  6. 基于STM32F103的树莓派ROS小车——PS2遥控程序解析

    基于STM32F103ZET6的PS2遥控ROS小车程序解析 序言 1. PS手柄介绍 2. 使用说明 2.1 引脚说明 2.2 时序图分析 3. 手柄测试 4. 程序解析 5. 仿真 6. 源码链接 ...

  7. PS2手柄代码移植-合泰平台

    PS2手柄代码移植-合泰平台 1.PS2手柄端口及通讯协议 PS2手柄的通讯协议是SPI协议是一种高速的.全双工.同步的通信总线,并且在芯片的管脚上只占用四根线(DI.DO.CS.CLK),PS2手柄 ...

  8. 网站服务器高主频还是多核心,CPU核心多好还是主频高好?核心多和主频高区别介绍...

    CPU Render,平均:100fps.最低:78fps.最高:148fps <古墓丽影:暗影>的Benchmark程序可以记录处理器渲染性能,所以既然是对比处理器,那么这一项性能就比较 ...

  9. 英特尔第十代处理器为什么不支持win7_5GHz动力澎湃 高主频多核处理器成就巅峰玩家...

    频率之争永远是处理器领域无法回避的话题.高主频在游戏中所带来的高速运行,稳定帧数等特性永远是玩家们所追求的目标.随着英特尔第十代桌面及移动版酷睿处理器的发布,无论是台式整机或是笔记本平台,都已全面进入 ...

最新文章

  1. frps server端配置_Docker 快速搭建 mock-server
  2. [HAOI2007] 理想的正方形
  3. 创业必经之路——Paul Graham创业曲线
  4. css3中的渐变效果及花斑动画的实现
  5. js模拟3D场景效果
  6. 【题解】(排序) —— POJ 0811:牛的选举
  7. css中表居中,CSS DIV中表格居中显示
  8. [转]C#操作Excel开发报表系列整理
  9. java 纯真ip数据库_纯真IP数据库格式读取方法(JAVA/PHP/Python)
  10. python的setting怎么找_python基础之setting设置,变量和关键字
  11. 63.QT-重写QStackedWidget模仿iphone的home界面,实现左右滑动
  12. ffmpeg命令下载MP4视频)
  13. Linux 命令(244)—— reset 命令
  14. 国产工业机器人目前发展到了什么水平?
  15. 小爱同学语音API(不需要小米账号)
  16. js封装QQ音乐api
  17. 你应该具有的富人思维
  18. 运放放大倍数计算公式_独家秘笈|运算放大器分析
  19. excel快速删除空行
  20. 蓝桥试题 算法训练 区间k大数查询 JAVA

热门文章

  1. windows下redis主从配置
  2. 微信小程序调用摄像头
  3. C++11条件变量使用详解
  4. Blender - 建模、灯光、材质练习记录
  5. linux 启动redis服务
  6. TypeScript索引签名
  7. JSD-2204-使用Idea启动Nacos-创建csmall项目-Dubbo-Day03
  8. 商道无情,看百度地图推广
  9. [已解决]安装或卸载软件提示管理员已阻止你运行此应用
  10. TL-R410路由器复位