给帮同学调试ds18b20,使用的是正点原子的程序。按道理只要移植IO口的管脚就没问题了。但是还是不行,所以去看了一下发现:
这是他原来的程序
//IO方向设置
#define DS18B20_IO_IN() {GPIOA->CRH&=0XFFFFFFF0;GPIOA->CRH|=8<<0;}
#define DS18B20_IO_OUT() {GPIOA->CRH&=0XFFFFFFF0;GPIOA->CRH|=3<<0;}
IO操作函数
#define DS18B20_DQ_OUT PAout(8) //数据端口 PA0
#define DS18B20_DQ_IN PAin(8) //数据端口 PA0
现在我使用PA11,应该只要改一点点:比如
//IO方向设置
#define DS18B20_IO_IN() {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=8<<3;}
#define DS18B20_IO_OUT() {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=3<<3;}
IO操作函数
#define DS18B20_DQ_OUT PAout(8) //数据端口 PA0
#define DS18B20_DQ_IN PAin(8) //数据端口 PA0