完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
以下是我的程序,我使用了LED绿灯(4.7)检测程序运行情况,结果灯根本没亮,程序卡在了第一个初始化函数中??还有,我对F5529的时钟频率设置不太了解,所以延时函数延迟的时间不知道该怎么计算,延时函数的参数都是从网上参考来的,但是参考时钟没有进行设置,这样会不会有影响? #include #define PD P6DIR|=BIT0 #define PO P6OUT|=BIT0 #define P_D P6DIR&=~BIT0 #define P_O P6OUT&=~BIT0 #define PIR P6IN&BIT0 int error; int n; int j; int i; unsigned int temp=0; unsigned char temp_low; unsigned char temp_high; unsigned int T=0; float ssd = 0; int TC =0; int tiNIT(void) { _DINT(); //一个时钟周期为0.04us(25MHz)??不确定!此处存疑 PD; PO; __delay_cycles(8);//延时 P_O; __delay_cycles(4000);// P_D; //方向改为输入 PO; __delay_cycles(320); if(PIR==1) { error=1;//初始化错误 P1DIR|=BIT0; P1OUT|=BIT0; //LED红灯提示初始化错误 } else { error=0; __delay_cycles(1120); PD; PO; } _EINT(); return error; } void Write(char unsigned Bdata) { _DINT(); for(i=0;i<8;i++) { P_O; __delay_cycles(375); if(Bdata&0x01) PO;//如果二进制这一位是1,那么输出高电平,换言之告诉传感器,这一位是1 else P_O;//如果二进制这一位是0,那么输出低电平,换言之告诉传感器,这一位是0 __delay_cycles(1125);//45us PO; Bdata >>= 1; //__delay_cycles(250); //延时10us(百度上说这一步不需要,看情况) } _EINT(); } unsigned char READ(void)//数据读取,一个字节 { unsigned char mid=0; _DINT(); for(j=0;j<8;j++) { mid>>=1; P_O; __delay_cycles(75); PO; __delay_cycles(125); P_D;//改端口方向为接收数据 if(PIR) mid|=0x80;//如果温度传感器传回来是高电平(或者1),那么mid(二进制)最高位先置为1. PD;//改方向为输出 __delay_cycles(1500); } _EINT(); return mid; } void Skip(void) { Write(0XCC); } void Convert(void) { Write(0x44); } void Read_SP(void) { Write(0xbe); } unsigned int ReadTemp(void) { temp_low = READ(); //读低位 temp_high = READ(); //读高位 temp = (temp_high<<8) | temp_low;//合并高低8位 return temp; } void Init_DS() { short int r=1; while(r) { r=TINIT();//初始化传感器 并进行检测是否初始化成功 } for(n = 20;n > 0;n--) __delay_cycles(20000000);//延时16秒 Skip(); //向温度传感器发送跳过读取ID号指令 Convert(); //向温度传感器发送温度转换指令 } void main(void) { Init_DS(); while(TINIT());//再次初始化传感器 并进行检测是否初始化成功 P4DIR|=BIT7;//通过LED绿灯检测程序的执行情况 P4OUT|=BIT7; for(n = 20;n > 0;n--) __delay_cycles(20000000);//延时16秒 Skip(); //向温度传感器发送跳过读取ID号指令 Read_SP(); T=ReadTemp(); ssd = T*0.0625;//计算摄氏度 TC=(int)(ssd*10+0.5); while(1); } |
|
相关推荐
1个回答
|
|
建议还是看下时钟频率,不然拿别人的直接用不确定是不是对的
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
828 浏览 0 评论
824 浏览 0 评论
861 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
836 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1292 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11822 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 12:05 , Processed in 0.765735 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号