当前位置: 首页 > news >正文

硬件-DAY04(ds18b20、ARM内核)

一、ds18b20

1.使用DS18B20,半双工串行通讯方式


2.P37引脚结构图:

        

上拉电阻: 把一个信号通过一个电阻接到电源(Vcc);
下拉电阻: 把一个信号通过一个电阻接到地(GND)。
作用:维持输入管脚是一个稳态:
当上拉和下拉电阻都不开启时,GPIO引脚处于浮空模式,此时引脚的电压是不确定的,可能会随时间改变。

3.两个或多个输出信号连接在一起可以实现逻辑“与”的功能。

拉高的过程为释放总线的过程;
接收方一定要释放总线,来实现接收数据;
上拉电阻:保证双方释放总线后,总线能够呈现高电平;


4.ds18b20通讯时序:
        初始化(复位)--- 写操作 --- 读操作 --- 获取温度
1)初始化

代码:

#define DQ_SET (P3 |= (1 << 7))
#define DQ_CLEAR (P3 &= ~(1 << 7))
#define DQ_TST ((P3 & (1 << 7)) != 0)int ds18b20_reset(void)
{int t;DQ_CLEAR;Delay10us(70);DQ_SET;Delay10us(5);t = 0;	while(DQ_TST && t < 30){Delay10us(1);++t;}if(t >= 30){return 0;			}t = 0;	while(!DQ_TST && t < 30){Delay10us(1);++t;}if(t >= 30){return 0;}return 1;		
}

2)写入操作

代码:

void write_ds18b20(unsigned char date)
{int i;for(i = 0; i < 8; ++i){if(date & 1){DQ_CLEAR;_nop_();_nop_();DQ_SET;Delay10us(5);	}else{DQ_CLEAR;Delay10us(5);DQ_SET;	}date >>= 1;}
}

3)读操作:

代码:

unsigned char read_ds18b20(void)
{unsigned char ret = 0;int i;for(i = 0; i < 8; ++i){DQ_CLEAR;_nop_();_nop_();DQ_SET;	_nop_();_nop_();_nop_();if(DQ_TST){ret |= (1 << i);}Delay10us(5);	}return ret;	
}

4)温度获取

     代码:

float get_temp(void)
{unsigned char tl;unsigned char th;short ret;ds18b20_reset();write_ds18b20(0XCC);write_ds18b20(0X44);Delay1ms(1000);ds18b20_reset();write_ds18b20(0XCC);write_ds18b20(0XBE);tl = read_ds18b20();th = read_ds18b20();ret = th << 8;ret |= tl;return ret * 0.0625;
}

二、ARM硬件

1.soc:片上芯片
2.GPIO:控制soc外部引脚的高低电平
3.kernel要与外设间建立联系(BUS总线)
        BUS总线分为AHB总线(先进的高速设备)和APB总线(先进的低俗设备)

三、ARM内核概念

1.R0~R12:通用寄存器(内设寄存器不可寻址)

2.ALU:算术逻辑单元

3.SP:栈指针寄存器(在硬件物理层的指针,来管理栈区)

4.PC:程序计数器,PC指到哪,程序就执行到哪

        PC一定会从地址0取一个指令开始执行
        ARM有32位,每一个指令有4个字节

5.LR:链接寄存器

6.MMU:memory management unit,内存管理单元(内存映射)

7.Cache:高速缓存,可以提高系统运行速率

        iCache:指令Cache

        dCache:数据Cache,所以ARM是哈弗结构

        内核编程中,打开iCache,通常关闭dCache

8.CPSR:程序状态寄存器

9.SPSR:程序状态保护寄存器

10.ARM简介
 ARM Cortex A(应用于消费类电子产品)

                     M(应用于微控制器MAU方向,如STM32)

                     R(应用于实时性方向,如军事,通信) 
ARM的指令集版本:

        ARM V4
        ARM V5
        ARM V7

11.编译流程步骤:

http://www.lqws.cn/news/447265.html

相关文章:

  • 《二叉搜索树》
  • 【数字人开发】Unity+百度智能云平台实现短语音文本识别功能
  • 主体和债项均为“AAA”等级 海尔消金发行10亿金融债
  • 在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)
  • 如何在 Pop!_OS 或 Ubuntu Linux 上安装 Dash to Dock
  • Linux简单了解以及VM虚拟机的安装使用(后端程序员)
  • Python 数据分析与可视化 Day 1 - Pandas 数据分析基础入门
  • Stable Diffusion 实战-手机壁纸制作 第二篇:优化那些“崩脸”和“马赛克”问题,让图像更加完美!
  • Tensorflow推理时遇见PTX错误,安装CUDA及CuDNN, 解决问题!
  • 职坐标IT培训:嵌入式AI物联网开源项目精选
  • AIGC - Prompt Optimizer 提示词优化器
  • stm32之使用中断控制led灯
  • MFC中使用CRichEditCtrl控件让文本框中的内容部分加粗
  • 李宏毅《生成式人工智能导论》 | 第3讲-第5讲:训练不了模型可以训练自己 含作业3、让AI村民组成虚拟村庄会发生什么
  • EchoEar(喵伴):乐鑫发布与火山引擎扣子联名 AI 智能体开发板
  • 高保真组件库:全选
  • Matplotlib 绘图库使用技巧介绍
  • 如何实现一个64 bit ID Unique Generator
  • Laravel框架的发展前景与Composer的核心作用-优雅草卓伊凡
  • 大数据复习HDFS
  • 苍穹外卖-2025 完成基础配置环节(详细图解)
  • 端口安全配置示例
  • golang excel导出时需要显示刷新
  • go客户端ssh交换机
  • Mysql5.7 自动备份恢复示例
  • 渗透实战:绕过沙箱机制的反射型XSS
  • ROS学习之动作通信
  • 苍穹外卖--WebSocket、来单提醒、客户催单
  • 图像特征检测算法ORB
  • ros中相机话题在web页面上的显示,尝试js解析sensor_msgs/Image数据