标题: 求助 有一段程序不能逆序输出字符串 请大佬帮忙看一下 [打印本页]

作者: lhhstc    时间: 2023-1-11 11:45
标题: 求助 有一段程序不能逆序输出字符串 请大佬帮忙看一下
#include <REGX52.H>
#include "UART.h"


unsigned char Flag=0;
unsigned char Data[30];
unsigned char Num=0;

void main()
{
        char k=0;
        UART_Init();
        while(1)
        {
                if(Flag==1)
                {
                        Flag=0;
                        for(k=Num;k>0;k--)
                        {
                                UART_SendByte(Data[k-1]);
                        }
                }
        }
}
void UART_Routine() interrupt 4
{
        unsigned char i=0;
        if(RI==1)
        {
                RI=0;
                Data[i]=SBUF;
                i++;
                if(SBUF==' ')
                {
                        Flag=1;
                        Num=i-1;
                        i=0;
                }
                else{TI=0;}
        }
}
作者: lkc8210    时间: 2023-1-11 13:36


作者: 明记冷气    时间: 2023-1-11 16:21
lkc8210 发表于 2023-1-11 13:36

不认真看 还真没发现    ,每次进入中断 i都被重置 ,这个static 加的刚刚好, i要么定义在函数外面 要么加static静态
作者: lhhstc    时间: 2023-1-11 18:22
lkc8210 发表于 2023-1-11 13:36

谢谢大佬 可是改完之后只能收到两个字母是怎么回事捏
作者: 明记冷气    时间: 2023-1-11 19:54
lhhstc 发表于 2023-1-11 18:22
谢谢大佬 可是改完之后只能收到两个字母是怎么回事捏


4.png (10.23 KB, 下载次数: 34)

4.png

作者: 明记冷气    时间: 2023-1-11 20:04


作者: 人中狼    时间: 2023-1-11 20:21
程序不完整,而且似乎代码结构也有问题
作者: lhhstc    时间: 2023-1-12 09:59
明记冷气 发表于 2023-1-11 20:04

把TI=0加入到主函数的for循环里就实现字符串逆序了 谢谢大佬指点
作者: lhhstc    时间: 2023-1-12 10:00
人中狼 发表于 2023-1-11 20:21
程序不完整,而且似乎代码结构也有问题

没戳 确实是代码结构的问题 把TI=0放到for循环里就好了 谢谢啦




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1