完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
由图所示,第一个脉冲唤醒作用,后面8个脉冲下降沿时发送数据。 我现在要写个程序来接收这串数据,用51单片机的INT0中断, 第一个唤醒脉冲的下降沿触发中断,进入中断后,在每个时间下降沿时读取数据口的电平。 程序如下:(i注:P3_2就是CLK,music_data就是DATA。
static uchar temp; uint rec_data_delay; uchar i=0; EX0=0; rec_data_delay=0; P3_2=1; do { rec_data_delay++; } while((!P3_2)&&(rec_data_delay<65000)); for(i=0;i<8;i++) { temp<<=1; rec_data_delay=0; P3_2=1; do { rec_data_delay++; } while((P3_2)&&(rec_data_delay<3000)); music_data=1; if(music_data) temp|=0x01; rec_data_delay=0; P3_2=1; do { rec_data_delay++; } while((!P3_2)&&(rec_data_delay<3000)); } num=temp; EX0=1; 以上的程序接收不到正确的数据,全是0,不知道确在哪?有没有人指点一下? 非常感谢
|
|
相关推荐
9个回答
|
|
对了,P3_2就是51的INT0管脚
|
|
|
|
谢谢,楼主分享!
|
|
|
|
怎么没人指点一下呀
|
|
|
|
|
|
|
|
看看。。。。51
|
|
|
|
是对的,每次发数据过来时,都有接收到时, 但我把这接收的数发到电脑上来看, 全是0
|
|
|
|
是对的,每次发数据过来时,都有接收到时, 但我把这接收的数发到电脑上来看, 全是0
|
|
|
|
是对的,每次发数据过来时,都有接收到时, 但我把这接收的数发到电脑上来看, 全是0
|
|
|
|
如果你的CLK接到了外部中断引脚,按你的程序当然接不到数据。记住:每次进入中断都会将中断程序从头至尾执行一次。按句话去检查你的程序,你就知道错误所在了
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
122 浏览 0 评论
565 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
772 浏览 0 评论
948 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
658 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12041 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 15:38 , Processed in 0.858921 second(s), Total 92, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号