完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
通过pc接受电子称的数据,以前没有问题,现在pc一天内有时接受的数据全是零,有时数据是正常的
这是代码:#include __CONFIG(0x0182); __CONFIG(0xA8FF); #define uint unsigned int #define uchar unsigned char void mcu_init(void); void US_delay(uint i) ; void interrupt usart(void); uchar receive_232[16]; uchar receive[30]; uchar stage4,stage3; uchar begin,j,send; uchar start,m,k; void main() { uint i; RC7=0; mcu_init(); //USART初始化 while(1) { if((receive[2]==0X05)&&(send==1)) { APFCON0=0x84; SPBRG=51; //设置波特率为4800BPS send=0; } if(k==1) { receive[4]=receive_232[3]; receive[5]=receive_232[4]; receive[6]=receive_232[5]; receive[7]=receive_232[6]; receive[8]=receive_232[7]; receive[9]=0x03; receive[10]=0x16; k=0;APFCON0=0x00;SPBRG=25; //485 //设置波特率为9600BPS RC7=1; US_delay(100); for(i=0;i<11;i++) { TXREG=receive; while(!TXIF); } US_delay(100); RC7=0; US_delay(100); } } } void mcu_init(void) { APFCON0=0x00;//485 TRISB=0x20; TRISC=0X20; //设置RC口方向 ANSELB=0X00; ANSELC=0X00; SPBRG=25; //设置波特率为9600BPS TXSTA=0X24; //使能串口发送,选择高速波特率 RCSTA=0X90; //使能串口工作,连续接收 RCIE=0X1; //使能接收中断 GIE=0X1; //开放全局中断 PEIE=0X1; //使能外部中断 RC7 =0; //RE_DE低电平,平时为接收状态 } void interrupt usart(void) { if(RCIE&&RCIF) //判断是否为串口接收中断 { send=0; stage4=stage3; stage3=RCREG; if((stage4==0XFE)&&(stage3==0X68)) { receive[0]=0xfe;begin=1;j=1; } if(begin==1) { receive[j++]=stage3; if(receive[j-1]==0X16) { j=1; begin=0;send=1;}//232 if(j==30) { j=1; begin=0;} } if((stage4==0XFF)&&(stage3==0XAA)) { start=1;m=2; } if(start==1) { receive_232[m++]=stage3; if(m==13) { m=2;start=0; k=1;} } } } void US_delay( uint i) { uint k=i; uchar j; while(k--) { j=3; while(j--); } } |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2084 浏览 1 评论
3629 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2336 浏览 2 评论
2763 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4027 浏览 5 评论
972浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6358浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 19:34 , Processed in 0.583664 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号