OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3228|回复: 2

求问大佬,存在的该bug如何解决

[复制链接]

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2020-1-6
在线时间
5 小时
发表于 2020-1-7 10:48:04 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 苏展 于 2020-1-7 10:49 编辑

程序为简易摩斯电码, 有时会存在输出的字母位置不正确,跑到页面顶端

QQ图片20200107104116.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2020-1-6
在线时间
5 小时
 楼主| 发表于 2020-1-7 10:54:26 | 显示全部楼层
部分代码如下
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "key.h"
#include "lcd.h"
int main(void)
{   
        int i;                                                                                                                             //控制morse数组中的数
        int j=40;                                                                                                                      //控制输出行
        int k=110;                                                                                                                   //控制输出列
        int morse[5];                                                                                                               //保存morse
        u8 key;                                                                                                                        //保存键值
        u8 lcd_id[12];                                                                                   //存放LCD ID字符串
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                                                   //设置系统中断优先级分组2
        delay_init(168);                                                                                                           //初始化延时函数
        uart_init(76800);                                                                                                   //初始化串口波特率为115200
        LCD_Init();                                                                                                                   //初始化LCD FSMC接口
        KEY_Init();                                                                                                                   //初始化与按键连接的硬件接口
       
        POINT_COLOR=RED;                                                                                                  //画笔颜色:红色
        sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id) ;                                                         //将LCD ID打印到lcd_id数组。
                POINT_COLOR=BLACK;                                                                                          //将画笔颜色改为黑色
        LCD_ShowString(30,50,480,24,24,"Welcome to Morse Password Translator");
        LCD_ShowString(340,80,480,16,16,"Made By Woyu");                                              //简单的进入界面
        begain:while(1)
                {
                        for(int m=0;m<5;m++)
                                {
                                        morse[m]=0;                                            //重置数组
                                }
                        i=0;
                        while(1)
                                {
                                        key=KEY_Scan(0);
               
                                        if(key==KEY2_PRES)
                                                {
                                                        morse[i]=1;             //判断触发的按键,给morse数组赋值
                                                        i=i+1;
                                                }
                                        else if(key==KEY0_PRES)
                                                {
            
                                                        morse[i]=2;
                                                        i=i+1;
                                                }
                                        else if(key==KEY1_PRES)
                                                {
                                                        j=j+20;
                                                        if(j%420==0)
                                                                {
                                                                        k=k+30;               //相当于回车,并控制输出的x、y轴坐标
                                                                        j=60;
                                                                }
                                                        break;
                                                }
     
                                }
        if(morse[0]==1)         
                if(morse[1]==2)
                        if(morse[2]==2)
                                if(morse[3]==2)
                                        if(morse[4]==2)
                                                {
                                                        POINT_COLOR=RED;          
                                                        LCD_ShowString(j,k,210,24,24,"1");                 //进行判定并输出
                                                        goto begain;
                                                }
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5141
金钱
5141
注册时间
2014-8-26
在线时间
1317 小时
发表于 2020-1-7 15:42:36 | 显示全部楼层
不懂,帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 05:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表