打印
[MM32硬件]

MM32F3277 MicroPython 实验板设计和软件测试

[复制链接]
楼主: 原来是wjc
手机看帖
扫描二维码
随时随地手机跟帖
21
原来是wjc|  楼主 | 2023-9-30 11:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
(2)测试结果


▲ 图2.3.1 闪烁PB2对应的LED
2、测试IO操作最短时间
通过测试两次IO的高低电平的变化,来测试在MicroPython下对于IO口的最短操作时间。

使用特权

评论回复
22
原来是wjc|  楼主 | 2023-9-30 11:24 | 只看该作者
测试代码
from machine import Pin,ADC,UART,freq
import utime

led = Pin('PB2', Pin.OUT_PUSHPULL)

while True:
    led(1)
    led(0)

使用特权

评论回复
23
原来是wjc|  楼主 | 2023-9-30 11:24 | 只看该作者
测试结果
  通过测量LED端口的变化波形来看,执行初次GPIO操作所需要的时间大约为:17μ s \mu sμs。

▲ 图2.3.2 相邻GPIO高低电平操作

使用特权

评论回复
24
原来是wjc|  楼主 | 2023-9-30 11:24 | 只看该作者
测试输入功能
(1)测试代码
from machine                import Pin
import utime

led = Pin('PB2', Pin.OUT_PUSHPULL)
btn = Pin('PB7', Pin.IN_PULLUP)

print("Test Pin input and output.")

while True:
    if btn.value() > 0:
        led.high()
    else: led.low()

使用特权

评论回复
25
原来是wjc|  楼主 | 2023-9-30 11:25 | 只看该作者
测试结果
  使用杜邦线将 PB7 接地,可以观察到LED(PB2) 熄灭。

▲ 图2.3.3 将PB7接地可以观察到PB2(LED)熄灭

使用特权

评论回复
26
原来是wjc|  楼主 | 2023-9-30 11:25 | 只看该作者
四、测试DAC

▲ 图2.3.4 测试DAC示例程序

使用特权

评论回复
27
原来是wjc|  楼主 | 2023-9-30 11:25 | 只看该作者
设置输出
DAC端口:
DAC0:PA4
DAC1:PA5

使用特权

评论回复
28
原来是wjc|  楼主 | 2023-9-30 11:25 | 只看该作者
测试代码
from machine                import Pin,ADC,DAC

dac0 = DAC(0)
dac1 = DAC(1)
print('Test DAC ...')

dac0.write_u16(0x800)
dac1.write_u16(0x400)

使用特权

评论回复
29
原来是wjc|  楼主 | 2023-9-30 11:25 | 只看该作者
测试结果
  使用数字万用表测量:

DAC输出电压:
DAC0(PA4):1.649V
DAC1(PA5): 0.825V

使用特权

评论回复
30
原来是wjc|  楼主 | 2023-9-30 11:26 | 只看该作者
输出电压曲线
(1)测试代码
from machine                import Pin,ADC,DAC
from math                   import *

dac0 = DAC(0)
dac1 = DAC(1)
print('Test DAC ...')

angle = [int((sin(i * pi * 2 / 100)+1.0)/2*0x600+0x200) for i in range(100)]
print(angle)

while True:
    for a in angle:
        dac0.write_u16(a)
        dac1.write_u16(0xa00 - a)

使用特权

评论回复
31
原来是wjc|  楼主 | 2023-9-30 11:26 | 只看该作者
测试结果
  使用示波器测量 DAC0,DAC1的波形。


▲ 图2.4.1 DAC0,DAC1的输出波形

使用特权

评论回复
32
原来是wjc|  楼主 | 2023-9-30 11:26 | 只看该作者
测试ADC
1、测试ADC0
from machine                import Pin,ADC,DAC
import utime

adc0 = ADC(0, init=True)

while True:
    print(adc0.read_u16())
    utime.sleep_ms(200)

使用特权

评论回复
33
原来是wjc|  楼主 | 2023-9-30 11:26 | 只看该作者
在PA0,输入直流电压,可以测试到输出0x0 ~ 0xffff数值。输出数据是右靠齐。

  注意:第一个ADC初始化的时候,需要将init=True参数代入。

2、ADC对应的端口
  ADC总共有16个通道,对应的外部端口分别是:

ADC端口:
CH0~7:PA0~PA7
CH8,CH9:PB0,PB1
CH10~CH13:PC0~PC3
CH14,CH15:NULL

使用特权

评论回复
34
原来是wjc|  楼主 | 2023-9-30 11:27 | 只看该作者
测试UART
1、UART端口
UART端口(RX,TX):
UART1:PA10, PA9
UART2:PA3,PA2
UART3:PB11,PB10
UART4:PC11,PC10
UART5:PD2,PC12
UART6:PC7,.PC6
UART7:PE7,PE8
UART8:PD1,PD0

使用特权

评论回复
35
原来是wjc|  楼主 | 2023-9-30 11:27 | 只看该作者
测试UART2
(1)测试发送
from machine                import Pin,UART
import utime

uart2 = UART(1, 115200)

print('Test UART.')

while True:
    _ = uart2.write(b'U')
    utime.sleep_ms(10)

使用特权

评论回复
36
原来是wjc|  楼主 | 2023-9-30 11:27 | 只看该作者
 在PA2(TX2)测量输出波形。



▲ 图2.6.1 PA2(TX2)测量得到波形

使用特权

评论回复
37
原来是wjc|  楼主 | 2023-9-30 11:27 | 只看该作者
测试接收
  使用短路子将 RXD3与RXD1连接在一起,也就是将REPL的接收端口RXD1连接在UART3的接收端口。

使用特权

评论回复
38
原来是wjc|  楼主 | 2023-9-30 11:27 | 只看该作者
测试代码
from machine                import Pin,UART
import utime

uart2 = UART(2, 115200)

print('Test UART.')
buf = bytes(0)

while True:
    if uart2.any():
        buf = buf + uart2.read(uart2.any())

        if buf[-1] == 13:
            print(int(buf))

            buf = bytes(0)

    utime.sleep_ms(10)

使用特权

评论回复
39
原来是wjc|  楼主 | 2023-9-30 11:28 | 只看该作者
Ⅱ.测试结果
>> Reset MicroPython...
>> Wait for MicroPython coming back...
>> Download MicroPython : 33 lines/707 characters.
>> -------------------------------------------------------------------------

Test UART.
333
3333
123
Traceback (most recent call last):
  File "<stdin>", line 22, in <module>
ValueError: invalid syntax for integer
>>>

使用特权

评论回复
40
原来是wjc|  楼主 | 2023-9-30 11:28 | 只看该作者
合测试
一、测试DAC输出曲线
  通过UART3送入DAC转换数字,使用数字万用表测量DAC0输出的电压,并绘制输出曲线。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则