干货 | 在STM32F746-Disco 上跑 Basic 体验 AppleⅡ
在STM32F746-Disco上跑Basic。就是直接在STM32F746-Disco开发板上运行MMBasic解释器,可以执行标准的Basic命令、函数计算、图形显示、GPIO控制、串口、SPI、I2C等等。开发板的液晶屏做为屏幕输出,可以通过串口终端或者USB键盘输入指令。从某种意义上看,就是把STM32F746-Disco开发板做为AppleⅡ,但是性能比AppleⅡ可强多了。要知道AppleⅡ的CPU是只有1M的6502,RAM也只有4KB。
这是国外的一个基于MMBasic的移植项目,因为程序还没有完成,暂时没有提供源码,但是有编译后的BIN文件可以先体验。我们把程序先下到开发板种去体验一下。
可以通过USB键盘输入,需要一根USBOTG线,并且只能接在CN13(USB_FS)上。
更常用的方式是通过串口终端输入,直接使用STLINK2的虚拟串口。
可以使用多种串口终端软件,如:putty、MobaXterm等。
我更习惯用超级终端,它有一个好处是支持用上下键快速调出以前输入的命令。
大家还记得basic指令吗?如果不记得了,需要找本书回忆一下了。注意在这里的指令是不区分大小写的。
先输入一个简单的程序打印出1到10,运行速度飞快。
用Line指令画直线也不错,语法是LINE (X1,Y1) - (X2,Y2), COLOR.
画圆也很容易,语法是CIRCLE(X,Y),RADIUS,COLOR,[FCOLOR],[F]。如果指定了最后的F参数,就是画实心圆。
可以用CLS命令清屏,CLS后面可以使用指定颜色进行清屏。
也可以用COLOR命令指定屏幕上的字体颜色和背景颜色:COLOR FONTCOLOR[, BACKCOLOR]
画矩形,一些命令的风格还不统一,很容易造成语法错误。
也画三角形、可旋转角度的矩形,还支持椭圆、polygon、显示图像、分层、3D物体等。
可以进行函数计算,支持常用的函数
使用MM.HRES、MM.VRES获取屏幕大小,MM.DEVICE$获取设备名称,MM.VER获取版本号。
还可以使用setpin和pin()控制GPIO
STM32F746-Disco上只有一个用户LED和一个按键。LED对应GPIO号是14,button对应GPIO号23。GPIO可以设置为DIN、DOUT、AIN、OFF等4种状态。DIN模式下还可以设置内部上拉电阻状态:"NONE", "UP", "DOWN"。
下面的程序读取按键状态,然后设置LED状态。当按下按键时,LED会亮;释放按键时,LED灭。你可以输入程序代码后,在输入RUN运行试试。
10 SetPin 14, dout
20 SetPin 23, din
30 Do
40 Pin(14)=Pin(23)
50 Loop Until 0
是不是比较有趣。如果在配一个外壳、键盘,就和一个小型主机一样了,可以体验一下早期的AppleⅡ的感觉了。
参考文件及手册请点击阅读原文。