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

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


连接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
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值