我在用学习板,学习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;有什么用呀?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
方便又可靠。 不需要频繁切换输入输出状态,又不会造成电平冲突导致过流问题
开漏输出几乎是总线设备的最优选择。
---------------------------------
开漏 肯定加上拉电阻
一周热门 更多>