中级会员
 
- 积分
- 266
- 金钱
- 266
- 注册时间
- 2013-10-25
- 在线时间
- 3 小时
|
5金钱
我自己的一块板子 接了18b20 没有应答,然后我接在开发板上是好好的。
我就只是换了一个IO口而已啊,我用的是GPIOC .5,电路就三根线,怎么可能错。代码用的原子哥的,就下面的东西改了一下:PS:我用的12b20是防水的,有差不多一米长的引线
u8 DS18B20_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //????PORTG???±??
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PORTG.11 ???ì????
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC,GPIO_Pin_5);
DS18B20_Rst();
return DS18B20_Check();
}
#define DS18B20_IO_IN() {GPIOC->CRL&=0XFF0FFFFF;GPIOC->CRL|=8<<20;}
#define DS18B20_IO_OUT() {GPIOC->CRL&=0XFF0FFFFF;GPIOC->CRL|=3<<20;}
#define DS18B20_DQ_OUT PCout(5)
#define DS18B20_DQ_IN   Cin(5)
搞了一晚上,其实也有过一两次应答的,但基本上都是没有应答的,应答了 读出来的数也一会大 一会小 不准。
哎~不开心
|
最佳答案
查看完整内容[请看2#楼]
哎 今天用示波器看了一下电平,发现数据线拉不上去(只能拉到1V),然后检查电路,发现和地短路了。
好尴尬,焊接水平不行,但是还是头一次发现短路还正好短了1k多欧姆,我测的时候都是用外用表通断测的
现在重新焊了一下 已经没有问题了
感谢大家帮助
|