有问题请教大家,我在linux下用python写的电机驱动程序,是访问设备文件进行操作,python![](http://imgsrc.baidu.com/forum/w%3D580/sign=bd4b7ee36c061d957d4637304bf50a5d/0679e9c4b74543a9966cfd171c178a82b8011451.jpg)
,我把程序贴一下,大家看一下,帮帮我怎么解决
import time
from struct import *
# Constants
INPUT = '0'
OUTPUT = '1'
HIGH = 1
LOW = 0
PWM_FREQ = 520
# Pin number
motor_pin3 = 7
motor_pin4 = 8
pwm_pin2 = 10
pwm_value = 255
# File locations
MODE_FILE3 = '/sys/devices/virtual/misc/gpio/mode/gpio' + str(motor_pin3)
MODE_FILE4 = '/sys/devices/virtual/misc/gpio/mode/gpio' + str(motor_pin4)
PIN_FILE3 = '/sys/devices/virtual/misc/gpio/pin/gpio' + str(motor_pin3)
PIN_FILE4 = '/sys/devices/virtual/misc/gpio/pin/gpio' + str(motor_pin4)
PWM_FILE = '/dev/pwmtimer'
# Pin mode
os.system('echo ' + OUTPUT + ' > ' + MODE_FILE3)
os.system('echo ' + OUTPUT + ' > ' + MODE_FILE4)
# Configure PWM
with open(PWM_FILE, 'wb') as f:
pwm_struct = pack('iiiI', pwm_pin2, 0, 0, PWM_FREQ)
fcntl.ioctl(f, 0x107, pwm_struct)
# Motor control
def drive_motor(dir1,dir2, pwm):
# Set direction
os.system('echo ' +str(dir1) + ' > ' + PIN_FILE3)
os.system('echo ' +str(dir2) + ' > ' + PIN_FILE4)
# Output PWM to motor
with open(PWM_FILE, 'wb') as f:
pwm_struct = pack('ii', pwm_pin2, pwm)
fcntl.ioctl(f, 0x106, pwm_struct)
# Do stuff with the motor
drive_motor(HIGH,LOW, 0)
time.sleep(1)
drive_motor(LOW,HIGH, 200)
time.sleep(2)
drive_motor(HIGH,LOW, 0)
time.sleep(0.5)
drive_motor(LOW,HIGH, 255)
time.sleep(2)
drive_motor(LOW,LOW, 0)
![](http://imgsrc.baidu.com/forum/w%3D580/sign=bd4b7ee36c061d957d4637304bf50a5d/0679e9c4b74543a9966cfd171c178a82b8011451.jpg)
,我把程序贴一下,大家看一下,帮帮我怎么解决
import time
from struct import *
# Constants
INPUT = '0'
OUTPUT = '1'
HIGH = 1
LOW = 0
PWM_FREQ = 520
# Pin number
motor_pin3 = 7
motor_pin4 = 8
pwm_pin2 = 10
pwm_value = 255
# File locations
MODE_FILE3 = '/sys/devices/virtual/misc/gpio/mode/gpio' + str(motor_pin3)
MODE_FILE4 = '/sys/devices/virtual/misc/gpio/mode/gpio' + str(motor_pin4)
PIN_FILE3 = '/sys/devices/virtual/misc/gpio/pin/gpio' + str(motor_pin3)
PIN_FILE4 = '/sys/devices/virtual/misc/gpio/pin/gpio' + str(motor_pin4)
PWM_FILE = '/dev/pwmtimer'
# Pin mode
os.system('echo ' + OUTPUT + ' > ' + MODE_FILE3)
os.system('echo ' + OUTPUT + ' > ' + MODE_FILE4)
# Configure PWM
with open(PWM_FILE, 'wb') as f:
pwm_struct = pack('iiiI', pwm_pin2, 0, 0, PWM_FREQ)
fcntl.ioctl(f, 0x107, pwm_struct)
# Motor control
def drive_motor(dir1,dir2, pwm):
# Set direction
os.system('echo ' +str(dir1) + ' > ' + PIN_FILE3)
os.system('echo ' +str(dir2) + ' > ' + PIN_FILE4)
# Output PWM to motor
with open(PWM_FILE, 'wb') as f:
pwm_struct = pack('ii', pwm_pin2, pwm)
fcntl.ioctl(f, 0x106, pwm_struct)
# Do stuff with the motor
drive_motor(HIGH,LOW, 0)
time.sleep(1)
drive_motor(LOW,HIGH, 200)
time.sleep(2)
drive_motor(HIGH,LOW, 0)
time.sleep(0.5)
drive_motor(LOW,HIGH, 255)
time.sleep(2)
drive_motor(LOW,LOW, 0)