完善资料让更多小伙伴认识你,还能领取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; } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2961 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2463 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2331 浏览 0 评论
2455 浏览 1 评论
1674 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 21:09 , Processed in 0.560446 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1555