你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32F1的BASIC解码实验

[复制链接]
博根 发布时间:2015-3-30 11:32

基于STM32F1 的BASIC解码实验

1、basic程序以文件形式存储

2、程序文件存储在sd卡

3、解释结果显示在液晶屏上


主函数部分

  1. int main(void)
  2. {
  3. u16 i,j;

  4. delay_init(72);        //延时初始化
  5. Init_Io();
  6. GLCD_Init();        //初始化液晶

  7. BACK_COLOR=0x001F;
  8. LCD_ShowString(30,10,"Mini STM32 SD Card TEST");
  9. LCD_ShowString(30,30,__DATE__);
  10. LCD_ShowString(150,30,__TIME__);

  11. ffext_mount(0, &fs);

  12. ffext_read("0:3.bas", wbuff2, 1024, FA_OPEN_ALWAYS | FA_READ);
  13. BACK_COLOR=0x001F;
  14. POINT_COLOR=0xF800;

  15. basic(wbuff2);

  16. while (1)
  17. {

  18. }
  19. }
复制代码

basic关键字部分


  1. struct commands /* 关键字查找表 */
  2. {
  3. char command[20];
  4. char tok;
  5. }table[] ={ /* 命令必须输入小写 */
  6. "print", PRINT,
  7. "input", INPUT,
  8. "if", IF,
  9. "then", THEN,
  10. "goto", GOTO,
  11. "for", FOR,
  12. "next", NEXT,
  13. "to", TO,
  14. "gosub", GOSUB,
  15. "return", RETURN,
  16. "end", END,
  17. "", END /* 单词表的结束 */
  18. };
复制代码

执行部分


  1. void basic(char *buf)
  2. {
  3. char *p_buf;


  4. /* 载入源文件 */

  5. p_buf=buf;
  6. if(setjmp(e_buf)) exit(1); /* 初始化长跳缓冲区 */

  7. prog = p_buf;
  8. scan_labels(); /* 在程序中找到标签 */
  9. ftos = 0; /* 初始化FOR堆栈索引 */
  10. gtos = 0; /* 初始化GOSUB堆栈索引 */
  11. do
  12. {
  13. token_type = get_token();
  14. /* 检查赋值语句 */
  15. if(token_type==VARIABLE)
  16. {
  17. putback(); /* 将变量返回到输入流 */
  18. assignment(); /* 必须是赋值语句 */
  19. }
  20. else /* 是命令 */
  21. switch(tok)
  22. {
  23. case PRINT:
  24. print();
  25. break;
  26. case GOTO:
  27. exec_goto();
  28. break;
  29. case IF:
  30. exec_if();
  31. break;
  32. case FOR:
  33. exec_for();
  34. break;
  35. case NEXT:
  36. next();
  37. break;
  38. case INPUT:
  39. input();
  40. break;
  41. case GOSUB:
  42. gosub();
  43. break;
  44. case RETURN:
  45. greturn();
  46. break;
  47. case END:
  48. printf("run basic end!");
  49. while(1);
  50. exit(0);
  51. }
  52. }while (tok != FINISHED);

  53. }
复制代码

参考资料: 测试手册.pdf (1.17 MB, 下载次数: 10)

收藏 1 评论3 发布时间:2015-3-30 11:32

举报

3个回答
沐紫 回答时间:2015-3-30 13:53:31
谢谢楼主代码啦
wamcncn 回答时间:2015-3-30 14:13:27
学习了,表示看不懂
LN 回答时间:2015-3-30 20:01:03
学习了,似成相识,好多年以前学过BASIC

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版