完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大侠看一下,我下面的程序为什么不能把接收的数据存到一个数组,再把该数组的数据上传到电脑上?(我参考了之前的一篇有关 串口如何接收多位字节数据 的文档写的程序),希望大家能给指正指正,万分感谢!
#include #define uchar unsigned char #define uint unsigned int uchar k=0; //以k做为判断是否接收到数据的依据 uchar c; //记录接收到多少个字节的数据 uchar receive[12]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; void delay1ms(uint i) { unsigned char j; while(i--) {for(j=0;j<114;j++) //基准延时程序 {;} } } void send_char(unsigned char txd) // 传送一个字符 { SBUF = txd; while(!ti); // 等特数据传送 TI = 0; // 清除数据传送标志 } void fasong(){ //发送数组receive[]; uchar i; for(i=0;i } } void panduan_k(){ //判断k,若为0,说明开始接收数据 if(k!=0){ delay1ms(1); //延迟1ms,等待把数据接收完 k=0; fasong(); } } main() { uchar i; uchar j=0; uchar receive[12]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; SCON= 0x40; //串口方式1 PCON=0; //SMOD=0 REN=1; //允许接收 TMOD= 0x20; //定时器1定时方式2 TH1= 0xfd; //11.0592M 9600波特率 TL1= 0xfd; TR1= 1; //启动定时器 while(1) { panduan_k(); } } void ser()interrupt 4 { if(RI==1){ RI=0; receive[k++]=SBUF; //存数据到接收缓存 c=k; } } 怎么无论是发什么数据,电脑串口都没有接收到任何的单片机的回复呢? |
|
相关推荐
5个回答
|
|
|
|
|
|
可以改一下试试
void fasong(){ //发送数组receive[]; uchar i; for(i=0;i } } |
|
|
|
好东西谢谢分享辛苦了楼主
|
|
|
|
额,不懂
|
|
|
|
接受数组为什么写成那样呢?
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
690 浏览 0 评论
735 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
624 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1099 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1092 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11793 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 01:06 , Processed in 0.769250 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号