本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!
上次讲了LUA移植到STM32,这次讲讲Basic脚本解释器移植到STM32。在STM32上跑Basic脚本,同样可以跟穿戴设备结合,也可以作为初学者学习MCU的入门工具,当然前提是有人做好Basic的STM32交互实现。这里使用的是uBasic开源脚本解释器(http://dunkels.com/adam/ubasic/),不过uBasic不支持完整的Basic算法,所以用起来略费心,如果有好的Basic开源脚本解释器,ANSI-C实现的,欢迎推荐。。。
本文实现的功能是输入以下basic脚本:
10 v=120 for p = 4 to 740 write "gpioa",p,v50 next p60 if v=0 then goto 1070 if v=1 then v=080 goto 20run
实现的功能是同时把4个LED灯同时开后再同时关,通过自定义的命令 write来实现,p是IO脚,v是IO的数值。
write "gpioa",p,v
如下图:
本文代码可以到这里下载http://download.csdn.net/detail/hellogv/7391265。
main.c的源码如下,通过USART1来发送Basic脚本到STM32,另外还要通过readline()来做些预处理,例如收到“run”这个字符串就表示脚本结束开始运行:
#include "stm32f10x_lib.h"#include <assert.h>#include "stdio.h"#include <stdlib.h>#include <string.h>#include "ubasic.h"/******************************************************************************* * 函数名 : RCC_Configuration * 函数描述 : 设置系统各部分时钟 *******************************************************************************/void RCC_Configuration(void) { /* 定义枚举类型变量 HSEStartUpStatus */ ErrorStatus HSEStartUpStatus; /* 复位系统时钟设置*/ RCC_DeInit();