tangsizu 发表于 2012-7-21 23:18:04

求助串口!路过的老师们能帮帮忙吗?

小弟我刚刚入门不久,还很菜!{:cry:}
我往串口里发了一串数据01 02 03 04 05 06 07,
uchar tab5;
可是不知为什么tab5=06,tab5=07   .......
本来我是想让tab5=01,tab5=2   .......








是不是哪里搞错 了。
期待老师们指点,先谢谢了!

cyzc2008 发表于 2012-7-21 23:24:23

这种情况,貌似是波特率设置的问题,不是很确定,你自己再找找原因。多重复发几次,看下一次的数据是不是从1到7一次出现。

刚刚 发表于 2012-7-21 23:35:22

把数组声明和fan的声明拿出来看看

fan这个变量应该设置成全局的变量,并加volatile修饰,以保障fan在中断返回的时候不发生变化!

tangsizu 发表于 2012-7-21 23:48:52

本帖最后由 tangsizu 于 2012-7-21 23:50 编辑

刚刚 发表于 2012-7-21 23:35 static/image/common/back.gif
把数组声明和fan的声明拿出来看看

fan这个变量应该设置成全局的变量,并加volatile修饰,以保障fan在中断 ...

多谢楼上两位的指点!
每次返回的都是一样的次序!
声明如下:

#include "ds1302.h"
#include "to595.h"
#include "tiaoshi.h"
#include "xianshi.h"
#include "com.h"
#include <reg51.h>


sbit led1=P2^7;
sbit led2=P2^6;
uchar fan,biaoji,i,miao_shan;

uchar tab5;


刚刚 发表于 2012-7-21 23:51:48

tangsizu 发表于 2012-7-21 23:48 static/image/common/back.gif
多谢楼上两位的指点!
每次返回的都是一样的次序!
声明如下:


你tab怎么赋值的

tangsizu 发表于 2012-7-21 23:57:20

你好,tab5[]没有赋初始值,串口发来的日期时间放到tab5[]里,然后再写到DS1302里

tangsizu 发表于 2012-7-21 23:58:08

刚刚 发表于 2012-7-21 23:51 static/image/common/back.gif
你tab怎么赋值的

您好,tab5[]没有赋初始值,串口发来的日期时间放到tab5[]里,然后再写到DS1302里

刚刚 发表于 2012-7-22 00:06:18

tangsizu 发表于 2012-7-21 23:58 static/image/common/back.gif
您好,tab5[]没有赋初始值,串口发来的日期时间放到tab5[]里,然后再写到DS1302里 ...

声明的时候 将uchar fan = 0;
然后接受中断里面,不需要去判断RI是不是等于1,你可以在进中断的时候去清除中断标志
接接受到1个tab5,你就直接返回一个tab5,然后再fan加加
页: [1]
查看完整版本: 求助串口!路过的老师们能帮帮忙吗?