Skip to content

Commit d2c55c1

Browse files
committed
add iic support for stm32 and pikastd device
1 parent 8301682 commit d2c55c1

4 files changed

Lines changed: 81 additions & 10 deletions

File tree

bsp/stm32g030c8/MDK-ARM/stm32g030c8.uvprojx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,16 @@
735735
<FileType>1</FileType>
736736
<FilePath>..\pikascript\pikascript-api\STM32-api.c</FilePath>
737737
</File>
738+
<File>
739+
<FileName>PikaStdDevice_IIC-api.c</FileName>
740+
<FileType>1</FileType>
741+
<FilePath>..\pikascript\pikascript-api\PikaStdDevice_IIC-api.c</FilePath>
742+
</File>
743+
<File>
744+
<FileName>STM32_IIC-api.c</FileName>
745+
<FileType>1</FileType>
746+
<FilePath>..\pikascript\pikascript-api\STM32_IIC-api.c</FilePath>
747+
</File>
738748
</Files>
739749
</Group>
740750
<Group>
@@ -825,6 +835,16 @@
825835
<FileType>1</FileType>
826836
<FilePath>..\pikascript\pikascript-lib\STM32\STM32_UART.c</FilePath>
827837
</File>
838+
<File>
839+
<FileName>STM32_IIC.c</FileName>
840+
<FileType>1</FileType>
841+
<FilePath>..\pikascript\pikascript-lib\STM32\STM32_IIC.c</FilePath>
842+
</File>
843+
<File>
844+
<FileName>PikaStdDevice_IIC.c</FileName>
845+
<FileType>1</FileType>
846+
<FilePath>..\pikascript\pikascript-lib\PikaStdDevice\PikaStdDevice_IIC.c</FilePath>
847+
</File>
828848
</Files>
829849
</Group>
830850
<Group>

bsp/stm32g030c8/pikascript/main.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
11
import PikaStdLib
2-
import PikaMath
32
import STM32
43
import PikaPiZero
54

6-
time = STM32.Time()
75
uart = STM32.UART()
8-
adc = STM32.ADC()
9-
pin = STM32.GPIO()
10-
pwm = STM32.PWM()
116
uart = STM32.UART()
127
rgb = PikaPiZero.RGB()
138
mem = PikaStdLib.MemChecker()
14-
op = PikaMath.Operator()
159

1610
uart.init()
1711
uart.setId(1)
1812
uart.setBaudRate(115200)
1913
uart.enable()
2014

21-
rgb.init()
22-
rgb.enable()
15+
iic = STM32.IIC()
16+
iic.init()
17+
iic.setPinSDA('PB0')
18+
iic.setPinSCL('PB1')
19+
iic.setDeviceAddr(88)
20+
iic.enable()
21+
print(iic.read(4))
2322

2423
print('hello 2')
2524
print('mem used max:')
@@ -28,7 +27,6 @@
2827
i = 0
2928
while i < 100:
3029
i = i + 1
31-
rgb.flow()
3230
print(i)
3331

3432
print('Hello PikaScript!')

package/PikaStdDevice/PikaStdDevice.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,41 @@ def platformRead(id: int, length: int) -> str:
114114
pass
115115

116116

117+
class IIC(TinyObj):
118+
def init():
119+
pass
120+
121+
def setPinSCL(pin: str):
122+
pass
123+
124+
def setPinSDA(pin: str):
125+
pass
126+
127+
def setDeviceAddr(addr: int):
128+
pass
129+
130+
def enable():
131+
pass
132+
133+
def write(addr: int, data: str):
134+
pass
135+
136+
def read(addr: int, length: int) -> str:
137+
pass
138+
139+
# need override
140+
def platformEnable():
141+
pass
142+
143+
# need override
144+
def platformWrite(addr: int, data: str):
145+
pass
146+
147+
# need override
148+
def platformRead(addr: int, length: int) -> str:
149+
pass
150+
151+
117152
class PWM(TinyObj):
118153
def init():
119154
pass

package/STM32/STM32.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def platformWrite(id: int, data: str):
5757
def platformRead(id: int, length: int) -> str:
5858
pass
5959

60+
6061
class PWM(PikaStdDevice.PWM):
6162
# override
6263
def platformEnable(pin: str, freq: int, duty: float):
@@ -68,4 +69,21 @@ def platformSetFrequency(pin: str, freq: int):
6869

6970
# override
7071
def platformSetDuty(pin: str, duty: float):
71-
pass
72+
pass
73+
74+
75+
class IIC(PikaStdDevice.IIC):
76+
SCL = GPIO()
77+
SDA = GPIO()
78+
# override
79+
80+
def platformEnable():
81+
pass
82+
83+
# override
84+
def platformWrite(addr: int, data: str):
85+
pass
86+
87+
# override
88+
def platformRead(addr: int, length: int) -> str:
89+
pass

0 commit comments

Comments
 (0)