把基于C51的温度采集程序移植到STM32上

来源:互联网 发布:局域网公告软件 编辑:程序博客网 时间:2024/05/17 01:41

首先需要弄明白,在移植的过程中哪些东西变了,哪些东西没变。


连接DS18B20的引脚变了,你的一些宏定义需要改一下。

# define DS18B20_DQ_OUT PAout(0)

# define  DS18B20_DQ_IN PAout(0)


STM32的引脚功能需要提前设置,读数据时I/O口设置为输入模式,写数据时I/O设置为输出模式。

#define DS18B20_IO_IN()  {GPIOA->CRL&=0xfffffff0;GPIOA->CRL|=8<<0;}

#define DS18B20_IO_OUT()  {GPIOA->CRL&=0xfffffff0;GPIOA->CRL|=3<<0;}


DS18B20在初始化时,要使能时钟,配置引脚的工作方式。

u8 DS18B20_Init(void)

{

RCC->APB2ENR|=1<<2;

GPIOA->CRL&=0xfffffff0;

GPIOA->CRL|=0x00000003;

GPIOA->ODR|=1<<0;

DS18B20_Rst();//复位函数

return DS18B20_Check();//检测DS18B20是否存在

}


在STM32中,函数定义写在DS18B20.c 文件里,函数声明和宏定义写在DS18B20.h文件里。


DS18B20的读写时序不变。


更多精彩内容,欢迎关注微信公众号【跟单片机谈恋爱】




0 0
原创粉丝点击