micropython stm32源码修改_网上买了ps2手柄,按stm32 代码 改写了个micropython
网上买了ps2手柄,按stm32 代码 改写了个micropython
[复制链接]
from machine import Pin
import time
di=Pin(12,Pin.IN,Pin.PULL_DOWN)
do=Pin(14,Pin.OUT, )
cs=Pin(27,Pin.OUT,) #PULL_UP
clk=Pin(26,Pin.OUT,)
#D0 16 dat=DI
#D2 04 cmd=DO
#D3 0 CS =CS
#D4 02 CLK=CLK
def DO_H():
do.value(1)
def DO_L():
do.value(0)
def CS_H ():
cs.value(1)
def CS_L():
cs.value(0)
def CLK_H ():
clk.value(1)
def CLK_L():
clk.value(0)
#These are our button constants
PSB_SELECT = 1
PSB_L3 = 2
PSB_R3 = 3
PSB_START = 4
PSB_PAD_UP = 5
PSB_PAD_RIGHT = 6
PSB_PAD_DOWN = 7
PSB_PAD_LEFT = 8
PSB_L2 = 9
PSB_R2 = 10
PSB_L1 = 11
PSB_R1 = 12
PSB_GREEN = 13
PSB_RED = 14
PSB_BLUE = 15
PSB_PINK = 16
PSB_TRIANGLE = 13
PSB_CIRCLE = 14
PSB_CROSS = 15
PSB_SQUARE = 26
PSS_RX = 5 #x
PSS_RY = 6
PSS_LX = 7
PSS_LY = 8
mask=[
PSB_SELECT,
PSB_L3,
PSB_R3 ,
PSB_START,
PSB_PAD_UP,
PSB_PAD_RIGHT,
PSB_PAD_DOWN,
PSB_PAD_LEFT,
PSB_L2,
PSB_R2,
PSB_L1,
PSB_R1 ,
PSB_GREEN,
PSB_RED,
PSB_BLUE,
PSB_PINK]
comd=[0x01,0x42]
data=[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
def ps2_init():
CLK_H()
DO_H()
time.sleep_ms(10)
def ps2_cmd(cmd):
global data
data[1]=0
for ref in (1,2,4,8,16,32,64,128):
if ( ref & cmd):
DO_H()
else:
DO_L()
CLK_H ()
time.sleep_us(50)
CLK_L()
time.sleep_us(50)
CLK_H ()
if(di.value()==1):
data[1]=ref|data[1]
def ps2_red():
global data
global comd
CS_L()
ps2_cmd(comd[0])
ps2_cmd(comd[1])
CS_H()
if(data[1]==57):
return 0#red light
else:
return 1#not red
def ps2_read():
global data
global comd
byte=0
ref=0x01
CS_L()
ps2_cmd(comd[0])
ps2_cmd(comd[1])
for byte in (2,3,4,5,6,7,8):
for ref in (1,2,4,8,16,32,64,128):
CLK_H ()
CLK_L()
time.sleep_us(50)
CLK_H ()
if(di.value()==1):
data[byte]= ref|data[byte]
time.sleep_us(50)
CS_H ()
def ps2_clear():#ok
global data
for i in range(0,9,1):
data[i]=0
def ps2_andata(button):
global data
return data[button]
def ps2_key():
global data
global mask
ps2_clear()
ps2_read()
handkey=(data[4]<<8)|data[3]
for index in (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15):
if (( handkey&(1<
return index+2
return 0
2018-3-30 22:24 上传
micropython stm32源码修改_网上买了ps2手柄,按stm32 代码 改写了个micropython相关推荐
- Deep Compression阅读理解及Caffe源码修改
Deep Compression阅读理解及Caffe源码修改 作者:may0324 更新: 没想到这篇文章写出后有这么多人关注和索要源码,有点受宠若惊.说来惭愧,这个工作当时做的很粗糙,源码修改的比 ...
- scala解析csv文件写入mysql_scala实战之spark源码修改(能够将DataFrame按字段增量写入mysql数据表)...
在上一篇博文中,我们可以简单的应用官网的给出的一些接口提取mysql数据表中的数据到spark中,也可以将spark的运行结果存入mysql中. 但是我们会发现spark将其DF存入mysql的时候, ...
- Android Dialer,Mms,Contacts源码修改笔记,移动端混合开发经验
②在AndroidManifest.xml中修改相应Activity的theme <activity android:name=".HomeActivity" android ...
- chosen.jquery.js 、chosen-select 源码修改控制 chosen:updated 方法动态更新下拉框选项不更新搜索框值 ,chosen 实现远程搜索加载下拉选项
chosen.jquery.js .chosen-select 源码修改控制 chosen:updated 方法动态更新下拉框选项不更新搜索框值,chosen 实现远程搜索加载下拉选项 chosen. ...
- Android TV 源码修改默认输入法
前一阵子,应泰国客户需求,需要在Android TV系统定制一个多语言输入法,至少支持中.英.泰三种语言.拿到这个任务,对于至今还是小白的我来说,当然先去google一下有没有大神专门做过符合要求的输 ...
- Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮...
Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮 前言 之前写过屏蔽系统导航栏功能的文章,具体可看Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP) ...
- 写一个PE的壳_Part 5:PE格式修复+lief源码修改
系列汇总 写一个PE的壳_Part 1:加载PE文件到内存 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc) 写一个PE的壳_Part 3:Section里实 ...
- adb 工具源码修改
adb 工具源码修改 1.修改客户端输入后的判断逻辑,使带密码的命令 可以通过命令检查 修改 system/core/adb/client/commandline.cpp 在最前面 新增一个函数 用来 ...
- grbl控制3轴机械臂 原理 实现 (四) 之GRBL源码修改驱动三轴机械臂
往期回顾: 第一篇:grbl控制3轴机械臂 原理 实现 (一) 之2D机械臂模拟及实现 第二篇:grbl控制3轴机械臂 原理 实现 (二) 之3D机械臂模拟及实现 第三篇:grbl控制3轴机械臂 原理 ...
- file-uploader-cli 关于上传至京东云中文件夹问题的源码修改
file-uploader-cli源码修改 注:可以直接跳到最下面看需要修改的部分 最近由于Gitee的开源审查,导致其无法再作为图床使用.在对比了多家OSS服务后,决定使用京东云作为新图床,并使用f ...
最新文章
- 【leetcode】Roman to Integer
- java(9)并发编程
- occam‘s razor
- 轻松学习,高效学习,那些年大学玩命的学习方法
- 狄克斯特拉算法(入门)
- Python2和Python3的兼容性写法
- vs c语言 多线程demo,一个多线程的Socket通信Demo(C语言实现)
- 数据集_自动驾驶数据集
- Qt学习笔记-国际化
- git新建空白文件没有生效
- linux匹配数字正则,51CTO博客-专业IT技术博客创作平台-技术成就梦想
- 一种数字全息散斑干涉测量仿真模拟系统
- php抖音跳转地址,PHP如何实现解析抖音无水印视频
- 在树莓派3上使用红外遥控器控制libreELEC和Raspbian系统
- 三取二计算机,三取二是什么意思
- MongoDB简单学习小总结
- (连载)Android 8.0 : 系统启动流程之Linux内核
- el-rate的使用
- ubuntu 20.04.2 LTS 安装WPS
- CentOS 服务器备份