DS18B20温度传感器

2019-07-21 04:19发布

我在用学习板,学习DS18B20遇到下面问题,不明白
void DS18B20_Init(void)
{
 RCC->APB2ENR|=1<<4;    //使能PORTA口时钟
 GPIOC->CRL&=0XFFFFFFF0;//PORTA.0 推挽输出
 GPIOC->CRL|=0X00000003;
 GPIOA->ODR|=1<<0;      //输出1
 DS18B20_Rst();
return DS18B20_Check(); } 

#define DS18B20_IO_OUT() {GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=3<<0;}
如上程序红 {MOD}部分,在DS18B20头文件已经对PA0进行了配置,为什么在void DS18B20_Init(void)中还要配置一次,还有GPIOA->ODR|=1<<0;有什么用呀?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
LTKKS
1楼-- · 2019-07-21 05:44
读和写的方向不一样,读的时候要设置成读,写的时候要设置成写
aleda303
2楼-- · 2019-07-21 10:11
18b20为什么不设置为 开漏输出?
方便又可靠。  不需要频繁切换输入输出状态,又不会造成电平冲突导致过流问题

开漏输出几乎是总线设备的最优选择。
LTKKS
3楼-- · 2019-07-21 14:52
 精彩回答 2  元偷偷看……
aleda303
4楼-- · 2019-07-21 19:59
回复【4楼】LTKKS:
---------------------------------
开漏 肯定加上拉电阻

一周热门 更多>