完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
max232是不是有问题,还有你的代码能保证正确么?
|
|
|
|
是一个电机驱动的程序 我把串口的程序贴出来给你看一下啊 |
|
|
|
void cpu_init() { //I/0初始化 TMOD=0x20;//使定时器T1工作在方式2,即T1工作在常数自动装入的8位定时器/计数器状态 TCON=0x00;//清定时器T0T1溢出标志,关定时器T0T1, //清外中断INT0和INT1溢出标志,选择INTOINT1为电平触发方式 TH1=0xfd; //11.0592MHz下,设置串行口波特率为9600 TL1=0xfd; PCON=0x00;//波特率不加倍 TR1=1;//启动定时器T1 SCON=0x50;//串口工作在方式1,且允许串行口接收,set byte rate as 9600bps //IP=0x01;//设置外中断INT0为高优先级,此处加优先级 IE=0x90; // EA=1,ES=1,开总中断,开串行中断 ZM_Key1=1; ZM_Key2=1; FM_Key1=1; FM_Key2=1; eye_LR=0; eye_LR_temp=0xFF; } 下面是串口通信 //增加串口中断模块 void cpu_com() interrupt 4 { uchar rev; EA=0; if(RI) { RI=0; rev=SBUF;//CPU收到的PC机数据 if( (rev&0x60)==0x40)//判断是否为镜头变倍指令 { switch(rev&0x03) { case 0x00:zoom_motor(0,0);break;//控制变倍镜头停止(锁定) case 0x01:zoom_motor(1,1);break;//控制变倍镜头倍率变大 case 0x02:zoom_motor(1,0);break;//控制变倍镜头倍率变小 default:break; } } if( (rev&0x60)==0x20 )//判断是否为镜头聚焦指令 { switch(rev&0x03) { case 0x00:send_LR_info() ;break; default: break; } } } if(TI) { TI=0; } EA=1; } |
|
|
|
好好学习天天向上谢谢lz
|
|
|
|
|
|
|
|
问题已解决,是因为开机的时候没清SBUF寄存器引起的 MCU通信 要先有“握手”信号才能建立连接 此时若SBUF中有数据 这个时候会发生电平冲突 连接建立不起来 MCU后迅速上电就等于将单片机“复位”复位后的MCU就相当于将SBUF清0,所以就像上面说的第二次开电的时候才能建立连接 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-TF卡烧录流程之烧写过程
706 浏览 0 评论
1042 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写原理
1087 浏览 0 评论
请问SPH0641LU4H这款麦克风如何在不使用I2S的情况下,单纯通过GPIO来进行驱动且正常读取数据呢
795 浏览 1 评论
497 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12094 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-1 23:55 , Processed in 0.893952 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号