完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include #include #include"ds1624.h" #include"LCD.h" extern flag,h_tem,l_tem; void delay(void) { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } void scl() { i_scl = 0; delay(); i_scl = 1; delay(); i_scl = 0; delay(); } void i_start() //I2C开始通信 { i_scl = 1; delay(); i_sda = 1; delay(); i_sda = 0; delay(); } void i_stop() //I2C结束通信 { i_scl = 1; delay(); i_sda = 0; delay(); i_sda = 1; delay(); } /* 向从机发送数据和应答信号 ** */ bit send_i_dat(uchar dat) { uchar date,i; date = dat; i_scl = 0; delay(); for(i = 0;i<8;i++) { if(date&0x80) i_sda = 1; else i_sda = 0; i_scl = 1; delay(); date = date<<1; i_scl = 0; delay(); } i_sda = 1; //释放总线 i_scl = 0; return ~i_ack(); //检测应答 } /*应答函数 sda为低表示应答 高为非应答 */ uchar i_ack() { bit ack; i_scl = 1; delay(); ack = i_sda; delay(); delay_1(1); i_scl = 0; delay(); return ack; } void send_ack(bit c) { //i_sda = 0; i_scl = 0; delay(); i_sda = c; delay(); i_scl = 1; delay(); } uchar i_receive(bit b) { uchar i,r_dat = 0,j; //接收的数据 i_sda = 1; delay(); i_scl = 1; delay(); for(i = 0;i<8;i++) { j = i_sda; _nop_(); _nop_(); r_dat = r_dat<<1; i_scl = 0; delay(); r_dat |= j; i_scl = 1; delay(); } i_sda =1; //释放总线 delay(); send_ack(b); //i_scl = 0; //delay(); return r_dat; } uchar start_temperature() { i_start(); if(send_i_dat(0x90)) { delay(); if(send_i_dat(0xee)) { delay(); i_stop(); return 1; } else { i_stop(); return 0; } } else { i_stop(); return 0; } } uchar read_temperature() { i_start(); if(send_i_dat(0x90)) { delay(); if(send_i_dat(0xaa)) { delay(); i_start(); if(send_i_dat(0x91)) { h_tem = i_receive(0); delay(); l_tem=i_receive(1); i_stop(); delay(); return(1); } } } else { i_stop(); delay(); return(0); } } 下面是我的主程序 i_scl = 0; i_stop(); while(1) { start_temperature(); delay(); if(flag == 1) //已经到达1s { flag = 0; read_temperature(); xs_ad(); dat_transform(); } } |
|
相关推荐
2个回答
|
|
|
|
|
|
问题是我堵回来的数据是错的 和那个芯片没关系。我就是不知道程序错在哪里 或者是说I2C的时序有错了
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
串口发送中断中对发送I/O口定义为GPIO输出,出现发送数据不完整,缺少2个字节,求解答
187 浏览 0 评论
630 浏览 0 评论
【xG24 Matter开发套件试用体验】10-Bluetooth示例1
723 浏览 0 评论
781 浏览 0 评论
【xG24 Matter开发套件试用体验】power specification电源规格参数配置
599 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10834 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-24 04:56 , Processed in 0.557019 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191