在mm32f3270上为MicroPython启用Signal模块

Introduction
原本以为放开在machine的类清单中对Signal类型的定义就能通,虽然能够通过编译,但在实测中并不能操作引脚。

测试MM32F3277中的MicroPython的Signal功能

想想也是,还没搞清楚Signal同Pin的绑定关系,只是心存侥幸就启动测试。实在对不住卓老师还高兴了一晚上。

Signal不像别的组件有很显而易见的代码组织结构。所以还是要从内核开始看代码。

现在追一下代码,看看Signal的实现机制是怎样的。

Tracing
extmod\machine_signal.c

通过不成熟的实验,发现Pin对象还是能够传入到Signal对象的,现在没有绑定到硬件上而已。

on和off函数是通过mp_virtual_pin_write()函数实现的:
 

STATIC mp_obj_t signal_on(mp_obj_t self_in) {
    mp_virtual_pin_write(self_in, 1);
    return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(signal_on_obj, signal_on);

STATIC mp_obj_t signal_off(mp_obj_t self_in) {
    mp_virtual_pin_write(self_in, 0);
    return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(signal_off_obj, signal_off);

mp_virtual_pin_write() 函数的实现在 extmod/virpin.c 文件

void mp_virtual_pin_write(mp_obj_t pin, int v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值