笔者硬件环境为飞思创的Air724UG核心板,由于项目需要增加一路蜂鸣器做报警故打算将这个模块的串口脚更改为GPIO做输出控制。
打开合宙的一些例程就开始进行相应的操作。对照管脚说明就开始进行操作。
错误1:lua /lua/pins.lua:56: invalid PIO operation
pins.setup(pio.P0_36,0)直接修改了原本的引脚为P0_36结果发现报错,查找pins库文件后发现
-- GPIO 0到GPIO 31表示为pio.P0_0到pio.P0_31
-- GPIO 32到GPIO XX表示为pio.P1_0到pio.P1_(XX-32),例如GPIO33 表示为pio.P1_1
-- GPIO 64到GPIO XX表示为pio.P2_0到pio.P2_(XX-64),例如GPIO65 表示为pio.P2_1
根据注释进行了响应的修改,更改为pins.setup(pio.P1_4,0)发现还是有错误。怀疑是串口没关闭的问题,参考了合宙另一个gpio和串口2定时切换的代码,增加了关闭串口的函数,发现还是不行,仔细比对串口2和串口1的区别后发现,合宙AIR724UG模块并不是所有引脚都能复用为GPIO口的,导致出现了上述错误。而飞思创的模块并没有GPIO的引出,可以尝试使用飞线的方式解决。