7.22是什么星座| 想呕吐是什么原因| 1926年属什么| 什么中药| 霍乱是什么病| 四季春属于什么茶| 石榴石什么颜色的最好| 该说不说的是什么意思| 1996属鼠的是什么命| 人间烟火是什么意思| 女人吃什么能增加雌激素| 加湿器加什么水最好| 驼背挂什么科| 早早孕有什么征兆| 双侧胸膜局限性增厚是什么意思| 面肌痉挛挂什么科| 质控是什么意思| 冥想有什么好处| 口腔溃疡吃什么好| 五行中金代表什么| 星期天左眼皮跳是什么预兆| 每天一杯蜂蜜水有什么好处| 为什么人会流泪| 卵巢多囊是什么原因造成的| 眼前有亮光闪是什么问题| 12月21日是什么星座| 脉数是什么意思| 1223是什么星座| 君子兰什么时候开花| 下嘴唇跳动是什么原因| 屈光度是什么意思| 鑫字属于五行属什么| 二手房是什么意思| 先天性心脏病是什么原因造成的| 接触性皮炎用什么药| 饱不洗头饿不洗澡是为什么| 腱鞘炎贴什么膏药| 掉头发吃什么好| 群聊名字什么最好听| 乙肝15阳性是什么意思| 抖腿是什么原因| 宝宝胎动频繁说明什么| 5月6日是什么星座| 为什么转氨酶会偏高| 羊水破了是什么症状| 如来藏是什么意思| 仿水晶是什么材质| 小人得志是什么意思| 烧头七有什么讲究| 什么叫活佛| 李白是什么星座| 六月十四号是什么星座| 正月二十一是什么星座| 吃什么头发长得快| 虚不受补吃什么中成药| 为什么不要看电焊火花| 什么叫随机血糖| 肚脐眼位置疼是什么原因| 反流性食管炎吃什么中成药| 生理盐水有什么用| scr医学上是什么意思| 属兔是什么命| 81什么意思| 为什么会得脑梗| 二便是什么意思| 5.16号是什么星座| 支原体感染吃什么药好| 人性是什么| 压迫硬膜囊是什么意思| 睡觉流口水是什么原因| 河豚吃什么| 手指甲紫色是什么原因| 肺炎衣原体阳性是什么意思| 内含是什么意思| 痛经是什么引起的| 人中长痘是什么原因| 谷氨酰基转移酶高是什么原因| 双肾泥沙样结石是什么意思| 天麻泡水喝有什么功效| 扫码是什么意思| wilson是什么意思| 靶向药是什么意思| 舒肝健胃丸治什么病| 尿不出来吃什么药| 白敬亭原名叫什么| 狗狗犬窝咳吃什么药| 大拇指麻木是什么原因| 清点是什么意思| 尖锐湿疣用什么药| 澳门用什么币种| 牙齿浮起来是什么原因| 儿童便秘吃什么最管用| 为什么晚上不能晾衣服| 经期为什么不能拔牙| 金火什么字| 积气是什么意思| 莫非的近义词是什么| 牛鞭是什么东西| 病理科是干什么的| 睡前喝蜂蜜水有什么好处| spa是什么服务| 央企和国企有什么区别| 领空是什么意思| 尿潜血阳性是什么意思| 喉咙痛喝什么饮料| 什么丝什么缕| 1993年五行属什么| 基数大是什么意思| 黄片是什么| 什么满园| 吃什么对肺好| 七月半是什么日子| 胆囊炎需要注意什么| 高血压1级是什么意思| 疼痛科属于什么科| 巴西龟吃什么食物| 死心眼什么意思| 血府逐瘀丸治什么病| 金钱能买来什么但买不来什么| 牙根疼是什么原因| tsh代表什么| 搞破鞋是什么意思| 科普一下是什么意思| 出家当和尚有什么要求| 副乳挂什么科| 过敏性鼻炎吃什么药好| 关照是什么意思| 什么情况下需做肠镜| 封建社会是什么意思| 睡觉睁眼睛是什么原因| 择日不如撞日什么意思| 羽毛球拍什么材质的好| 什么叫肌酸激酶| 马斯卡彭是什么| 什么是微量元素| 五月份什么星座| 梦见棺材什么意思| 痛经打什么针止痛| 舌头发涩是什么原因造成的| 为什么小脑会萎缩| 避孕环是什么样子图片| 桂花是什么生肖| 欢乐海岸有什么好玩的| 什么时候开始数伏| 低聚木糖是什么| 什么是湿气| 薄荷泡水喝有什么好处| 毫无意义是什么意思| 曹操属什么| 丹参滴丸治什么病| 什么是黄油| 福祸相依什么意思| 奥氮平片是什么药| 张字五行属什么| 唐老鸭叫什么名字| 热玛吉是做什么的| 背德感是什么意思| 纳米是什么东西| 前面有个豹子是什么车| 女人左手断掌什么命运| 郭德纲什么学历| 风疹病毒抗体igg阳性是什么意思| 为什么很多人不去庐山| 什么水果不上火| 心电图低电压什么意思| 38度吃什么药| 阴唇内侧长疙瘩是什么原因| 木加一笔有什么字| 狰狞什么意思| 提溜是什么意思| 什么水果对嗓子好| 腿老是抽筋是什么原因| 驼背挂什么科| 目加此念什么| 生理需求是什么意思| 玻璃体混浊吃什么药好| 爱情是什么样| 学分是什么| 八婆是什么意思| cea检查是什么意思| 维生素b2有什么作用| 人生于世上有几个知己是什么歌| 女生是t是什么意思| 什么是胎梦| 湿疹是什么| 溥仪和慈禧什么关系| 先天性是什么意思| 体寒的女人吃什么能调理好身体| 双月刊什么意思| life style是什么品牌| 腿肿脚肿是什么原因引起的| 猫哭了代表什么预兆| 不撞南墙不回头是什么意思| 离岗是什么意思| 移徒是什么意思| 皮笑肉不笑是什么生肖| 脚肿了是什么原因引起的| 4月11号是什么星座| 牛的四个胃分别叫什么| 吃护肝片有什么副作用| 什么时间种白菜| 灰指甲有什么危害| 点痣挂什么科室| 尿酸高吃什么食物最好| 土地出让是什么意思| 骑木驴是什么意思| 缓释片是什么意思| 心脏增大吃什么药| 三大产能营养素是什么| ipadair2什么时候上市的| 淋巴结发炎挂什么科| 活血化瘀吃什么| 海鸥手表属于什么档次| 为什么不开朱元璋的墓| 伤寒是什么意思| CNN什么意思| 空气炸锅可以做什么| 公约是什么意思| 刷牙牙龈出血是什么原因| 阿司匹林治疗什么病| 胃炎吃什么药| 爆肝是什么意思| ecology是什么意思| 静候佳音是什么意思| 单绒双羊是什么意思| 什么叫湿疹| 九月初十是什么星座| 方圆是什么意思| 气血两虚吃什么药| 文房四宝是什么| 2010属什么| 黄疸高吃什么药| 桃子又什么又什么| 尿正常是什么颜色| 尿路感染要吃什么药| 接风是什么意思| 百香果什么时候吃最好| 台湾三小是什么意思| leg是什么意思| 二氧化碳低是什么原因| 狼的天敌是什么动物| 天蝎座是什么象| 沙棘对肝脏有什么好处| 什么叫自私的人| 四物汤什么时候喝最好| 小孩不说话什么原因| 回肠荡气什么意思| 今年农历是什么年| 巨蟹座与什么星座最配| 尿失禁用什么药好| 舒张压偏高是什么原因造成的| 什么是屈光不正| 什么店可以买到老鼠药| 什么是什么| 牙周炎吃什么消炎药| 艾灸脚心有什么好处| 什么牙膏最好| 无花果什么时候结果| 总出虚汗是什么原因| 诶是什么意思| 裙带菜是什么菜| 什么是赌博| 扁平疣是什么原因造成的| 洋葱炒什么| 百度
打印
[AT32L021]

奢华满溢,品味至上,运动有余,张琦试驾宾利飞驰 V8 S

[复制链接]
4163|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
trucyw|  楼主 | 2025-08-04 18:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 muyichuan2012 于 2025-08-04 15:37 编辑

突然发现桌面还有一颗之前做老化试验使用的温度监测sensor(HK1020)
那么温度计就一定安排上
HK1020这颗sensor和DS18B20差不一样,类似一颗插件的三极管TO-92封装(规格书显示兼容DS18B20)

和DS18B20一样也具有64bit独一无二编码,0x28 0x3E 0x7C 0x01 0x00 0x00 0x00 0x23 这一串是目前使用这颗sensor的身份识别码
hk1020.h
#ifndef __HK1020_H
#define __HK1020_H   

#include "at32l021_gpio.h"
#include "delay.h"

#define HK1020_Clr() gpio_bits_reset(GPIOB,GPIO_PINS_10)
#define HK1020_Set() gpio_bits_set(GPIOB,GPIO_PINS_10)
#define HK1020_RD  gpio_input_data_bit_read(GPIOB,GPIO_PINS_10)

u8 HK1020_Init(void);//初始化HK1020
u8 HK1020_Read_Data(u8 *temp);//读取温湿度
u8 HK1020_Read_Byte(void);//读出一个字节
u8 HK1020_Read_Bit(void);//读出一个位
u8 HK1020_Check(void);//检测是否存在HK1020
void HK1020_Rst(void);//复位HK1020
void HK1020_Get_ROM(u8 size);
short HK1020_Get_Temp(void);
void Temperaturedisplay(void);
#endif


hk1020.c
#include "hk1020.h"
#include "delay.h"

void HK1020_IO_IN(void)
{
    gpio_init_type gpio_initstructure;
    gpio_default_para_init(&gpio_initstructure);
    gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
    gpio_initstructure.gpio_out_type  = GPIO_OUTPUT_PUSH_PULL;
    gpio_initstructure.gpio_mode = GPIO_MODE_INPUT;
    gpio_initstructure.gpio_pins = GPIO_PINS_10;
    gpio_initstructure.gpio_pull = GPIO_PULL_UP;
    gpio_init(GPIOB, &gpio_initstructure);
}
void HK1020_IO_OUT(void)
{
    gpio_init_type gpio_initstructure;
    gpio_default_para_init(&gpio_initstructure);
    gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
    gpio_initstructure.gpio_out_type  = GPIO_OUTPUT_PUSH_PULL;
    gpio_initstructure.gpio_mode = GPIO_MODE_OUTPUT;
    gpio_initstructure.gpio_pins = GPIO_PINS_10;
    gpio_initstructure.gpio_pull = GPIO_PULL_UP;
    gpio_init(GPIOB, &gpio_initstructure);
}

//复位HK1020
void HK1020_Rst(void)
{
    HK1020_IO_OUT(); //SET OUTPUT
    HK1020_Clr();  //GPIO_ResetBits(GPIOB,GPIO_Pin_3);
    //Delay_Ms(1);
    delay_us(500);  //拉低500Us
    HK1020_Set();  //GPIO_SetBits(GPIOB,GPIO_Pin_3);
    delay_us(50);   //拉高50US   时间必须保证足够!!!!!
}
//等待HK1020的回应
//返回1:未检测到HK1020的存在
//返回0:存在
u8 HK1020_Check(void)
{
    u8 retry=0;
    HK1020_IO_IN();    //SET INPUT
    while(HK1020_RD&&retry<200)
    {
        retry++;
        delay_us(1);
    };
    if(retry>=200)
    {
        return 1;
    }
    else
    {
        retry=0;
        while(!HK1020_RD &&retry<240)
        {
            retry++;
            delay_us(1);
        };
        if(retry>=240) return 1;
    }
    return 0;
}
//从HK1020读取一个位
//返回值:1/0
u8 HK1020_Read_Bit(void)
{
    u8 data;
    HK1020_IO_OUT();
    HK1020_Clr();
    delay_us(2);
    HK1020_Set();
    HK1020_IO_IN();
    delay_us(12);
    if(HK1020_RD)
    {
        data=1;
    }
    else data=0;
    delay_us(50);
    return data;
}
//从HK1020读取一个字节
//返回值:读到的数据
u8 HK1020_Read_Byte(void)
{
    u8 i,j,dat;
    dat=0;
    for (i=1;i<=8;i++)
    {
        j=HK1020_Read_Bit();
        dat=(j<<7)|(dat>>1);
    }
    return dat;
}
//写一个字节到HK1020
//dat:要写入的字节
void HK1020_Write_Byte(u8 dat)
{
    u8 j;
    u8 testb;
    HK1020_IO_OUT();
    for (j=1;j<=8;j++)
    {
        testb=dat&0x01;
        dat=dat>>1;
        if (testb)
        {
            HK1020_Clr();
            delay_us(2);
            HK1020_Set();
            delay_us(60);
        }
        else
        {
            HK1020_Clr();
            delay_us(60);
            HK1020_Set();
            delay_us(2);
        }
    }
}
//开始温度转换
void HK1020_Start(void)
{
    HK1020_Rst();
    HK1020_Check();
    HK1020_Write_Byte(0xcc); // skip rom
    HK1020_Write_Byte(0x44); // convert
}
//初始化HK1020的IO口 DQ 同时检测HK1020的存在
//返回1:不存在
//返回0:存在
u8 HK1020_Init(void)
{
    HK1020_IO_OUT();
    HK1020_Set();

    HK1020_Rst();  //复位HK1020
    HK1020_Get_ROM(8);
    HK1020_Rst();  //复位HK1020
    return HK1020_Check();//等待HK1020的回应
}
//从HK1020得到温度值
//精度:0.1C
//返回值:温度值 (-550~1250)
short HK1020_Get_Temp(void)
{
    u8 temp;
    u8 TL,TH;
    short tem;
    HK1020_Start ();           // HK1020 start convert
    HK1020_Rst();
    HK1020_Check();
    HK1020_Write_Byte(0xcc); // skip rom
    HK1020_Write_Byte(0xbe); // convert
    TL=HK1020_Read_Byte(); // LSB
    TH=HK1020_Read_Byte(); // MSB
    if(TH>7)
    {
        TH=~TH;
        TL=~TL;
        temp=0;                 //温度为负
    }else temp=1;               //温度为正
    tem=TH;                     //获得高八位
    tem<<=8;
    tem+=TL;                        //获得底八位
    tem=(float)tem*0.625;       //转换
    if(temp)return tem;     //返回温度值
    else return -tem;
}
void HK1020_Get_ROM(u8 size)
{
    u8 datap[8]={0};
    u8 i;
    HK1020_Start ();           // HK1020 start convert
    HK1020_Rst();
    HK1020_Check();
    HK1020_Write_Byte(0x33); // convert
    for(i=0;i<size;i++)
    {
        datap[i]= HK1020_Read_Byte();
        printf("0x%02X ", datap[i] );
    }
    printf("\r\n");
}
void Temperaturedisplay(void)
{
    printf("Temperature: %d.%d\r\n", HK1020_Get_Temp()/10, HK1020_Get_Temp()%10);
}



代码部分完成,实际测试数据串口数据如下





沙发
时光迷宫| | 2025-1-9 17:56 | 只看该作者
这就是1-WRITE通信吗,就一根线
板凳
trucyw|  楼主 | 2025-1-10 08:19 | 只看该作者
时光迷宫 发表于 2025-1-9 17:56
这就是1-WRITE通信吗,就一根线

是的
地板
OceanDepths| | 2025-1-20 16:17 | 只看该作者
这个一般都是IO直接模拟时序就行了吧,有没有其他方式
5
trucyw|  楼主 | 2025-1-21 09:02 | 只看该作者
OceanDepths 发表于 2025-1-20 16:17
这个一般都是IO直接模拟时序就行了吧,有没有其他方式

确实都是IO模拟时序
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

749

帖子

2

粉丝
苏菲是什么意思 孕激素高会有什么影响 吃什么减脂肪最快最有效的方法 腊排骨炖什么好吃 国家电网是什么单位
小孩腮腺炎吃什么药 辛辣指的是什么 wbc是什么 手指关节疼痛看什么科 女人是什么
什么是商k 热伤风感冒吃什么药好 养病是什么意思 人为什么会脸红 卯戌相合发生什么
珎是什么意思 什么叫品牌 肺部钙化灶是什么意思 什么原因导致卵巢早衰 什么惚惚
京东白条什么时候还款hcv9jop5ns1r.cn 检验葡萄糖用什么试剂hcv7jop6ns1r.cn 做完磁共振要注意什么hcv7jop6ns7r.cn 莫西沙星片主治什么病hcv8jop5ns5r.cn vip是什么意思hcv8jop6ns2r.cn
什么是外阴炎hcv8jop1ns6r.cn 态生两靥之愁中靥指什么hcv7jop9ns9r.cn 胆囊炎输液用什么药hcv9jop2ns1r.cn 跑路什么意思aiwuzhiyu.com 六根不净是什么意思gangsutong.com
组织部是干什么的hcv9jop5ns8r.cn 为什么眼睛会痛wzqsfys.com 手足口病是什么症状hcv8jop7ns1r.cn 外露什么意思hanqikai.com 经常放屁是什么问题zhiyanzhang.com
dido是什么牌子hcv9jop5ns4r.cn 翊字五行属什么hcv8jop4ns7r.cn ky什么意思hcv9jop0ns6r.cn 琼瑶是什么意思bjcbxg.com 普洱茶有什么功效hcv7jop9ns1r.cn
百度