完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include "DS18B20.h"
#include "delay.h" #include "sys.h" #include "uart.h" #define DS18B20_OUT PBout(3) #define DS18B20_IN PBin(3) extern GPIO_InitTypeDef GPIO_InitStructure; //定义变量 unsigned char flag_temper = 0; //定义变量 unsigned int Temp_Buffer = 0; //重定义fputc函数 int fputc(int ch, FILE *f) { USART_SendData(USART1,ch); while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET); return ch; } //配置为MCU主设备写,从该设备读 void init_ds18b20Out(void) { /* 使能GPIA的硬件时钟 */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); /* GPIOA Configuration: PA9(USART1_TX) PA10(USART1_RX) */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; GPIO_Init(GPIOB, &GPIO_InitStructure); } //配置为MCU主设备读,从设备写 void init_ds18b20In(void) { /* 使能GPIA的硬件时钟 */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //输入 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; GPIO_Init(GPIOB, &GPIO_InitStructure); } //**************************************************** //DS18B20写1字节 //**************************************************** void DS18B20_Write_Byte( unsigned char dat) { unsigned char i,x=0; //i为循环控制变量 init_ds18b20Out(); //改变DQ引脚方向性为输出方式 for( i = 0 ; i < 8 ; i++ ) { x = dat & 0x01; //从最低位取值到最高为 if(x) //写"1" { DS18B20_OUT = 0; //DQ单总线拉低 delay_us(15); //延时大约15us DS18B20_OUT = 1; //DQ单总线写入 "1" delay_us(45); //延时大约45us DS18B20_OUT ; //最终保持高电平 } else{ DS18B20_OUT = 0; //DQ单总线拉低 delay_us(15); |
|
相关推荐
4个回答
|
|
跑出的程序吗?
|
|
|
|
程序是你自己写的还是网上下来的
|
|
|
|
楼主请首先确保这段程序能正常运行。
|
|
|
|
个人认为较好的debug方式是,先用示波器看是否有变化的波形在数据线上输出,看有无毛刺等异常现象;然后想办法看写进去的命令对不对,我个人是使用逻辑分析仪比较多一些。如果你没有以上设备,就要找个办法确保你的“源版本”没有问题,比如说你已知这个驱动程序一定是正常的没然后再仔细,谨慎地去移植它。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十五章 摄像头实验
219 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
574 浏览 0 评论
684 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
1074 浏览 0 评论
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12054 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 05:07 , Processed in 0.661112 second(s), Total 49, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号