完善资料让更多小伙伴认识你,还能领取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方式是,先用示波器看是否有变化的波形在数据线上输出,看有无毛刺等异常现象;然后想办法看写进去的命令对不对,我个人是使用逻辑分析仪比较多一些。如果你没有以上设备,就要找个办法确保你的“源版本”没有问题,比如说你已知这个驱动程序一定是正常的没然后再仔细,谨慎地去移植它。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
795 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
668 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
845 浏览 0 评论
1508 浏览 3 评论
由于 Windows 无法加载这个设备所需的驱动程序,导致这个设备工作异常?
2409 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
3692 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-28 20:39 , Processed in 0.536091 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号