完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
串口1设置
波特率是9600 模式是1 void EUSART1_Init(u16 bdr)//初始化eusart1 { /*串口中断设置*/ IEN1=0; IEN1|=0x04;//打开串口1中断 SCON1=0x50;//串口1允许接收数据 //01 方式1 波特率可调 8位异步 //0 禁止停止位确认 停止位会置RI为1产生中断; IPL1=0x40; IPH1=0x40;//优先级最高 //设置波特率 //使用串口1自带波特率发生器 SBRT0=(32768-FSYS/bdr)%256;//低8位 SBRT1=(32768-FSYS/bdr)/256;//高8位 SBRT1|=0x80;//打开波特率发生器 } //串口发送字节 u8 EUSART1_SendByte(u8 dat) { SCON1 = 0x40; SBUF1 = dat; //SUBF接受/发送缓冲器(又叫串行通信特殊功能寄存器) sendover = 0; while(0==sendover); // 等待数据传送完毕 SCON1=0x50;//串口1允许接收数据 return 0; } //usart1中断服务程序 //只处理接收数据 void EUSART1_Interrupt(void) interrupt 9 { if(ti1) { sendover=1; TI1=0; } else if(RI1) //收到数据 { RI1=0; recdata=SBUF1; } } 主函数里每200ms打印1次全局变量recdata 结果值都是0 是不是SBUF1有问题? |
|
相关推荐
4 个讨论
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 23:35 , Processed in 0.443109 second(s), Total 53, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号