完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
回复本帖可获得 1 分积分奖励! 每人限 1 次 |
本帖最后由 上自习的猪 于 2016-4-28 06:30 编辑
这是我的程序,大家看看有没有什么问题 为何我进行串口打印的时候输出的一直是一个很大的值 static void GPIO_Out_Config(){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE); GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_OD; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOE,&GPIO_InitStructure); } static void GPIO_In_Config(){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE); GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9; GPIO_Init(GPIOE,&GPIO_InitStructure); } static void Tx_signal(){ GPIO_Out_Config(); GPIO_ResetBits(GPIOE,GPIO_Pin_9); delay(620); GPIO_SetBits(GPIOE,GPIO_Pin_9); delay(1); } static void Rx_signal(){ GPIO_In_Config(); while(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_9)); while(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_9)==0); delay(300); GPIO_Out_Config(); } void ds18b20_Config(){ Tx_signal(); Rx_signal(); } static void WriteBit(unsigned char data){ char i=0; GPIO_Out_Config(); for(i=0;i<8;i++){ if(data&0x01){ GPIO_ResetBits(GPIOE,GPIO_Pin_9); delay(8); GPIO_SetBits(GPIOE,GPIO_Pin_9); delay(80); }else{ GPIO_ResetBits(GPIOE,GPIO_Pin_9); delay(110); GPIO_SetBits(GPIOE,GPIO_Pin_9); delay(5); } data>>=1; } } static unsigned char ReadBit(){ char i=0; unsigned char data; for(i=0;i<8;i++){ GPIO_Out_Config(); data>>=1; GPIO_ResetBits(GPIOE,GPIO_Pin_9); delay(3); GPIO_In_Config(); delay(1); if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_9)){ data=data|0x80; } delay(70); } GPIO_Out_Config(); return data; } unsigned short get_Temp(){ unsigned short a,b; unsigned short temp; ds18b20_Config(); WriteBit(0x33); ds18b20_Config(); WriteBit(0xCC); WriteBit(0x44); delay(780); ds18b20_Config(); WriteBit(0xCC); WriteBit(0xBE); a=ReadBit(); b=ReadBit(); temp=(b<<8)|a; if(b&0xf0){ sign=1; temp=~temp+1; temp=temp*0.0625; }else{ sign=0; temp=temp*0.0625; } return temp; } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2201 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2027 浏览 3 评论
4633 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2171 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2705 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 06:30 , Processed in 0.479517 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号