资源简介
DS18b20与Stm32f103c8t8的接线
DQ-----PB9
VCC----3.3v
GND----GND
主程序
int main(void)
{
char buf[10];
unsigned int temper;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200); //初始化串口,波特率为115200
LED_GPIO_Configuration(); //初始化LED灯
USART_SendStr(USART1,"温度测量:");
while (1)
{
temper = DS18B20_Read_Temp();
sprintf(buf,"%d.%d",temper/10,temper);
USART_SendStr(USART1,"当前温度为:");
USART_SendStr(USART1,buf);
USART_SendStr(USART1," C\n");
LEDToggle(1000); //指示灯闪烁,每1s打印一次温度
}
}
代码片段和文件信息
#include “Ds18b20.h“
//DS18b20的DQ端口接在PB9处
void DS18B20_IO_OutPut(void)
{
/*定义一个GPIO_InitTypeDef类型的结构体*/
GPIO_InitTypeDef GPIO_InitStructure;
/*开启GPIOC的外设时钟*/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB ENABLE); //RCC_APB2Periph_GPIOB使能PB端口
/*选择要控制的GPIOC引脚*/
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_9;
/*设置引脚模式为通用开漏输出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
/*设置引脚速率为50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*调用库函数,初始化DS18B20_GPIO_PORT*/
GPIO_Init(GPIOB &GPIO_InitStructure);
}
void DS18B20_IO_InPut(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB ENABLE); //RCC_APB2Periph_GPIOB使能PB端口
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB &GPIO_InitStructure);
}
//*************************************************************************
// DS18B20初始化
//*************************************************************************
void Init18B20(void)
{
DS18B20_IO_OutPut();
GPIO_ResetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_CLR;置低电平
delay_us(500);
GPIO_SetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_SET;置高电平
delay_us(120);
DS18B20_IO_InPut();
while(GPIO_ReadInputDataBit(DS18B20_GPIO_PORT DS18B20_GPIO_PIN )); /*等待数据线变为高电平*/
delay_us(1);
while(GPIO_ReadInputDataBit(DS18B20_GPIO_PORT DS18B20_GPIO_PIN ));
DS18B20_IO_OutPut();
}
//*************************************************************************
// 向18B20写一个字节函数
//*************************************************************************
/*DS18B20字节写入函数*/
void DS18B20_Write_Byte(unsigned char value)
{
unsigned char i;
DS18B20_IO_OutPut();
for (i = 0; i<8; i++)
{
// DQ_OUT;S设置为输出
GPIO_ResetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_CLR;置低电平
delay_us(10) ;
if (value & 0x01)
{
GPIO_SetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_SET;置高电平
}
else
{
GPIO_ResetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);// DQ_CLR;置低电平
}
delay_us(40); //延时40uS
GPIO_SetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN); //DQ_SET置高电平 //位结束
delay_us(1);
value >>= 1;
}
GPIO_SetBits(DS18B20_GPIO_PORTDS18B20_GPIO_PIN);//DQ_SET;置高电平
}//*************************************************************************
// DS18B20读一个字节函数
//*************************************************************************
unsigned char DS18B20_Read_Byte(void)
{
unsigned char i;
unsigned char value = 0;
for (i = 0; i<8; i++)
{
value =value>>1;
DS18B20_IO_OutPut(); // DQ_OUT;
GPIO_ResetBits(DS18B20_GPIO_PORT
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-01-07 15:55 STM32F103C8T6-DS18B20\
文件 403655 2016-09-09 13:55 STM32F103C8T6-DS18B20\DS18B20中文全套资料.pdf
目录 0 2019-01-07 15:17 STM32F103C8T6-DS18B20\Hardware_Driver\
目录 0 2019-01-07 15:29 STM32F103C8T6-DS18B20\Hardware_Driver\inc\
文件 874 2019-01-07 15:29 STM32F103C8T6-DS18B20\Hardware_Driver\inc\Ds18b20.h
文件 245 2019-01-01 17:25 STM32F103C8T6-DS18B20\Hardware_Driver\inc\led.h
目录 0 2019-01-07 15:48 STM32F103C8T6-DS18B20\Hardware_Driver\src\
文件 4692 2019-01-07 15:48 STM32F103C8T6-DS18B20\Hardware_Driver\src\Ds18b20.c
文件 741 2019-01-07 15:10 STM32F103C8T6-DS18B20\Hardware_Driver\src\led.c
目录 0 2019-01-07 16:13 STM32F103C8T6-DS18B20\Pro\
目录 0 2019-01-07 14:39 STM32F103C8T6-DS18B20\Pro\DebugConfig\
文件 2403 2017-11-23 15:41 STM32F103C8T6-DS18B20\Pro\DebugConfig\LED_STM32F103C8_1.0.0.dbgconf
文件 2097 2018-12-25 11:27 STM32F103C8T6-DS18B20\Pro\Jli
文件 671 2016-10-08 17:35 STM32F103C8T6-DS18B20\Pro\Jli
目录 0 2019-01-07 14:39 STM32F103C8T6-DS18B20\Pro\List\
文件 114406 2019-01-07 16:08 STM32F103C8T6-DS18B20\Pro\List\Project.map
文件 66564 2019-01-07 16:07 STM32F103C8T6-DS18B20\Pro\List\startup_stm32f10x_hd.lst
目录 0 2019-01-07 16:12 STM32F103C8T6-DS18B20\Pro\Obj\
文件 243442 2019-01-07 15:16 STM32F103C8T6-DS18B20\Pro\Obj\24l01.crf
文件 832 2019-01-07 15:16 STM32F103C8T6-DS18B20\Pro\Obj\24l01.d
文件 274340 2019-01-07 15:16 STM32F103C8T6-DS18B20\Pro\Obj\24l01.o
文件 19 2019-01-04 11:46 STM32F103C8T6-DS18B20\Pro\Obj\ExtDll.iex
文件 313364 2019-01-07 16:08 STM32F103C8T6-DS18B20\Pro\Obj\Project.axf
文件 1275 2019-01-07 16:12 STM32F103C8T6-DS18B20\Pro\Obj\Project.build_log.htm
文件 12246 2019-01-07 16:08 STM32F103C8T6-DS18B20\Pro\Obj\Project.hex
文件 46451 2019-01-07 16:08 STM32F103C8T6-DS18B20\Pro\Obj\Project.htm
文件 989 2019-01-07 16:08 STM32F103C8T6-DS18B20\Pro\Obj\Project.lnp
文件 479 2016-08-23 15:40 STM32F103C8T6-DS18B20\Pro\Obj\Project.sct
文件 49559 2019-01-07 16:12 STM32F103C8T6-DS18B20\Pro\Obj\Project_LED.dep
文件 272204 2019-01-07 15:16 STM32F103C8T6-DS18B20\Pro\Obj\adc.crf
文件 1344 2019-01-07 15:16 STM32F103C8T6-DS18B20\Pro\Obj\adc.d
............此处省略230个文件信息
相关资源
- stm32f103_IAPbootloader-1.0及用户app修改好
- VL53L0X 3.0 RCWL-0800激光测距
- STM32F103 模糊自整定增量式PID控制电机
- STM32F103系列 普通增量式PID控制速度程
- 空气检测质点 stm32f103c8t6+lora+pm2.5+温湿
- STM32f103避障智能小车源码
- STM32F103C8T6电路原理图及PCB图
- w25q16/w25x16驱动代码,使用cube库编写,
-
STli
nk刷Jli nk工具 版本190812 支持 - STM32F103VET6简单驱动舵机MG-996R.rar
- STM32F103C8T6下位机PCB设计-基于惯性测量
- STM32F103-GPIO-按键检测
- 基于STM32F103C8T6的电机控制程序
- STM32F103开发案例
- STM32F103使用SPI方式读取惯导传感器A
- STM32F103C8 2路PWM捕捉 2路串口输出
- 基于STM32F103的RS485通信主动发送中断接
- 基于STM32F103的RS485通信采用DMA方式发送
- 串口记录仪
- stm32f103的4字节转float和float转4字节代
- 基于MQ2烟雾传感器的STM32F103程序
- stm32F103ZET6 PCB+原理图
- STM32F103C8T6外部中断.rar
- 基于stm32f103zet6的0.96寸的OLED显示屏源
- stm32f103的SD卡-SDIO-FATFS
- STM32F103RCT6 12864液晶驱动
- UM0492_STM32F103XX_永磁同步电机_PMSM_FOC软
- stm32f103双串口收发结构体版本.zip
- STM32F103RCT6程序例
- STM32F103中文教程及参考手册
评论
共有 条评论