Micropython支持很多ST的开发板,但是NUCLEO-144系列的NUCLEO_F746ZG开发板,并不在micropython直接支持的列表中,而同型号系列中的STM32F746DISC是支持micropython。不过STM32F746DISC的固件并不能直接用在这个开发板上,一个是芯片的型号不同,另外就是时钟配置不同。 虽然不能直接使用STM32F746DISC的固件,但是我们可以通过修改这个开发板的配置,实现程序的移植。 主要需要修改的地方有:
等。因为时间原因,先只修改了前面3个,后面的等有空了在进行。 开发板上有3个LED,配置为: #define MICROPY_HW_LED1 (pin_B0) // blue #define MICROPY_HW_LED2 (pin_B7)// red #define MICROPY_HW_LED3 (pin_B14) // green 虽然这几个GPIO支持PWM,但是目前PWM功能还不能用,使用LED(n).intensity(xxx)不能改变亮度。 因为F7DISC上UART1使用了B7,和NUCLEO上的LED2冲突,所以还需要修改UART1的定义,否则LED2将不受控制。 修改按键的配置 #define MICROPY_HW_USRSW_PIN (pin_C13) 修改配置后,重新编译代码,得到初步可以运行的固件,经过在NUCLEO_F746ZG开发板上初步测试,的确可以使用了。 可以用pyb.LED(1).on()控制LED,用pyb.Switch()()读取按键状态,也可以设置中断等。 |
除了LED和按键,还有GPIO的定义等。
Nucleo系列开发板相当于是核心板,扩展的功能较少。如果是Discovery,还有Flash等功能。
谢谢,正在学习您的教程