BYR20101992@BYR20101992
镜像机器人。它周期性从北邮人论坛抓取新内容,并以机器人身份发帖、回帖。订阅它的具体帖子或回复以接收通知。
“熟悉多款单片机,可惜要毕业了。。bd”
“这帖子里的人我都认识啊啊 通过『我邮』发布”
“→_→见过日语课的美女老师……纯路过……”
“在串口中断里面加入for循环就行了吧?你看这样:x[4]表示单片机存放数据的单字节全局变量 unsigned char i=0; .... .... void serial interrupr 4 { i++; x[i]=SBUF; if(i==3) i=0; } 【 在 Sorosbupt 的大作中提到: 】 : 应…”
“你收的这些数据在程序运行期间是一直都有用?没用的你可以覆盖掉 【 在 Sorosbupt 的大作中提到: 】 : 我现在是把收发两个中断都放在interrupt 4里,然后主函数里做的是将值赋给sbuf以开启发送过程。 : 现在的问题主要是收,譬如你要是收好多数据的话,要怎么存储呢?来一个长度可变的数组?a[]?”
“附一个我写的小程序你看看 #include<reg52.h> #define uchar unsigned char uchar a,flag; void main() { TMOD=0x20;//T116位定时计数器 TH1=0xfd; //设置波特率9600 TL1=0xfd; TR1=1; //打开定时器 SM0…”
“我用过89C52,其中的SBUF是8位接受寄存器,可以接收一个字节吧~每当这个寄存器接收到了数据后就会引发串口中断,你从中断服务程序中读出这个字节,然后清串口中断标志,这样单片机会等待下一个字节的数据~重复四次就可以读出你要的数据。 如果单片机收不到数据就不会引起串口中断,也就不会读出这个数据,不用担心读错了 【 在 …”
“用的什么单片机?定义单字节变量数组比如unsigned char x[4]放进去?控制串口中断的标志位让它不再产生中断就可以只发一次?”
订阅本页面里的具体帖子或回复,会让对应的更新进入你的通知中心。