完善资料让更多小伙伴认识你,还能领取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 } } |
|
|
|
好东西谢谢分享辛苦了楼主
|
|
|
|
额,不懂
|
|
|
|
接受数组为什么写成那样呢?
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码
634 浏览 0 评论
【瑞萨RA2L1入门学习】+ MacOS安装e2studio
362 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-本地仓库管理之分支间的操作
660 浏览 0 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】3D 图形显示
519 浏览 0 评论
653 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12214 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-25 03:53 , Processed in 0.538400 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号