您尚未登录。

楼主 # 2023-04-19 19:07:23

ggkkggk
会员
注册时间: 2022-12-16
已发帖子: 5
积分: 16

[问题]使用最新版本下载后IO无法使用。

import PikaStdLib
import machine

mem = PikaStdLib.MemChecker()
io1 = machine.GPIO()
time = machine.Time()

io1.setPin('PB15')
io1.setMode('out')
io1.enable()
io1.low()

print('hello pikascript')
print('mem.max :')
mem.max()
print('mem.now :')
mem.now()

while True:
    mem.now()
    io1.low()
    time.sleep_ms(500)
    io1.high()
    time.sleep_ms(500)

使用http://pikascript.com/ 生成STM32G070最新版本,下载后,发送上列文件提示错误

[info]: boot from Script.
NameError: name 'machine.GPIO' is not defined
-> RUN machine.GPIO         (#46)

请问是什麽问题呢?

最近编辑记录 ggkkggk (2023-04-19 19:08:15)

离线

楼主 #5 2023-04-20 11:00:40

ggkkggk
会员
注册时间: 2022-12-16
已发帖子: 5
积分: 16

Re: [问题]使用最新版本下载后IO无法使用。

6440ac590d04a.png
直接用官网的预设值,没选其它的,

6440ac5848ff1.png

这是我main.py的载图



6440ac56e33b8.png
这是串口回传值




再麻烦看一下,谢谢。

最近编辑记录 ggkkggk (2023-04-20 11:08:01)

离线

楼主 #8 2023-04-21 10:25:55

ggkkggk
会员
注册时间: 2022-12-16
已发帖子: 5
积分: 16

Re: [问题]使用最新版本下载后IO无法使用。

 
import PikaStdLib
import machine

mem = PikaStdLib.MemChecker()
import machine
io1 = machine.GPIO()
time = machine.Time()

io1.setPin('PB15')
io1.setMode('out')
io1.enable()
io1.low()

print('hello pikascript')
print('mem.max :')
mem.max()
print('mem.now :')
mem.now()

while True:
    mem.now()
    io1.low()
    time.sleep_ms(500)
    io1.high()
    time.sleep_ms(500)
    

 

全部擦除后,修改如上述code,还是出现
NameError: name 'machine.GPIO' is not defined
-> RUN machine.GPIO         (#46)

离线

楼主 #9 2023-04-21 11:05:22

ggkkggk
会员
注册时间: 2022-12-16
已发帖子: 5
积分: 16

Re: [问题]使用最新版本下载后IO无法使用。

@lyon1998 您好
参考网站,我将code修改成

  
import PikaStdLib
import STM32G0

mem = PikaStdLib.MemChecker()
io1 = STM32G0.GPIO()
time = STM32G0.Time()

io1.setPin('PB15')
io1.setMode('out')
io1.enable()
io1.low()

print('hello pikapython')
print('mem.max :')
mem.max()
print('mem.now :')
mem.now()

while True:
    io1.low()
    time.sleep_ms(500)
    io1.high()
    time.sleep_ms(500)
	


  

串口回传如下

[info]: boot from Script.
NameError: name 'STM32G0.Time' is not defined
 -> RUN STM32G0.Time 		(#63)
>>> 

但我把time拿掉,修改如下code

import PikaStdLib
import STM32G0

mem = PikaStdLib.MemChecker()
io1 = STM32G0.GPIO()


io1.setPin('PB15')
io1.setMode('out')
io1.enable()
io1.low()

print('hello pikapython')
print('mem.max :')
mem.max()
print('mem.now :')
mem.now()

while True:
    io1.low()

便执行正常,硬体电路的PB15也有动作。

目前引用的版本如下

pikascript-core==v1.12.0
PikaStdLib==v1.12.0
PikaStdDevice==v2.3.0
STM32G0==v2.1.0
PikaPiZero==v1.4.0
time==v0.1.0


另外,我发现在mdk里python目录里的STM32G0.pyi  并没有time的定义,跟这有关吗?

# api
from PikaObj import *
import PikaStdDevice
import PikaStdTask


class GPIO(PikaStdDevice.GPIO):
    ...


class ADC(PikaStdDevice.ADC):
    ...


class UART(PikaStdDevice.UART):
    ...


class PWM(PikaStdDevice.PWM):
    ...


class Task(PikaStdTask.Task):
    ...

最近编辑记录 ggkkggk (2023-04-21 11:07:08)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn