完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
uchar R_word;
uchar ACK_Flag; uchar read_buffer_iic[16]; uchar write_buffer_iic[16]; void Start(void) { TSDA_IO_OUT(); TSCL_IO_OUT(); TSDA=1; TSCL=1;delay_us(10); TSDA=0;delay_us(10); TSCL=0; delay_us(10); } void Stop(void) { TSDA_IO_OUT(); TSCL_IO_OUT(); TSDA=0; TSCL=0;delay_us(10); TSCL=1;delay_us(10); TSDA=1; } void Send_Byte(uchar Byte) { uint i; TSDA_IO_OUT(); TSCL_IO_OUT(); TSCL=0; delay_us(10); for (i=0;i<8;i++) { if(Byte 0x80) {TSDA=1;} else {TSDA=0;} Byte = Byte << 1; delay_us(10); TSCL=1; delay_us(10); TSCL=0; delay_us(10); } } void ACK(void) { TSCL_IO_OUT(); TSDA_IO_IN(); TSDA=1; TSCL=1;delay_us(5); ACK_Flag = 0; if((RTSDA )) ACK_Flag = 1; TSCL=0; delay_us(10); } void ACK_0(void) { TSCL_IO_OUT(); TSDA_IO_OUT(); TSDA=0; TSCL=0; delay_us(10); TSCL=1; delay_us(10); TSCL=0; delay_us(10); } void NOACK(void) { TSCL_IO_OUT(); TSDA_IO_OUT(); TSDA=1; TSCL=0; delay_us(10); TSCL=1; delay_us(10); TSCL=0; delay_us(10); } void Receive_Byte(void) { uint j; R_word = 0x00; TSDA_IO_IN(); TSCL_IO_OUT(); delay_us(10); for(j=0;j<8;j++) { R_word = R_word << 1; TSCL=0; delay_us(10); if((RTSDA)) R_word+=1; delay_us(10); TSCL=1; delay_us(10); } } void I2C_75_write(uchar W_addruchar dat) { delay_us(10); Start(); Send_Byte(0x90); ACK(); Send_Byte(W_addr); ACK(); Send_Byte(dat); ACK(); Stop(); } void I2C_75_Read(uint R_addruchar n) { uchar i=0; Start(); Send_Byte(0x90); ACK(); Send_Byte(R_addr); ACK(); Start(); Send_Byte(0x91); ACK(); Receive_Byte(); ACK_0(); read_buffer_iic[0] = R_word ; Receive_Byte();ACK_0(); read_buffer_iic[1] = R_word ; NOACK(); Stop(); } //读取温度并处理数据 void readTEMP(void) { I2C_75_write(0x010x00); I2C_75_Read(02); delay_us(10); tempH=read_buffer_iic[0]; if((tempH 0x80)==0x80) { tempH-=0x01; tempH=~tempH; zhengfuflag=1; } //temp= read_buffer_iic[0] + (uint)(read_buffer_iic[1]*0.0625*0.0625); temprd= (float)tempH+ (float)(((read_buffer_iic[1]>>4) 0x0f)*0.0625); if(zhengfuflag==1){floattohex(0-temprd);}// |
|
相关推荐
1个回答
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习——ElfBoard ELF1板卡 修改ssh默认端口号的方法
357 浏览 0 评论
375 浏览 0 评论
请问大佬们,我的esp32只能连接电脑才能连接上热点WiFi,而电池供电就wifi就断了。
760 浏览 3 评论
【FireBeetle 2 ESP32-S3开发板体验】官方Arduino例程学习
975 浏览 0 评论
【FireBeetle 2 ESP32-S3开发板体验】ESP-IDF搭建北斗二代模块进行北斗RDSS通信
1860 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-11-1 17:05 , Processed in 0.306704 second(s), Total 40, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:粤 B2-20160233 工商网监 湘ICP备2023018690号