单片机 指针 的应用

2023-10-31

目录

直接访问物理地址下的数据

1、访问硬件指定内存下的数据

1、如设备ID号:

2、将复杂格式的数据转换为字节,方便通信与存储


直接访问物理地址下的数据

1、访问硬件指定内存下的数据

1、如设备ID号:

#include  <REGX52.H>
#include  "LCD1602.h"




/*
LCD1602打印单片机的ID号
*/


void main()
{
		unsigned char *p;
		unsigned char code *x;         //访问程序存储区
		
		LCD_Init();
//		LCD_ShowString(1,1,"HelloWorld!");
	
		p = (unsigned char *)0xF1;     //RAM区的ID号
		x = (unsigned char *)0x1FF9;   //8k程序存储区(flash)  0x1FF9为ROM区ID地址
	/*RAM区与ROM区ID号相同*/
		LCD_ShowHexNum(1,1,*p,2);
		LCD_ShowHexNum(1,3,*(p+1),2);
		LCD_ShowHexNum(1,5,*(p+2),2);
		LCD_ShowHexNum(1,7,*(p+3),2);
		LCD_ShowHexNum(1,9,*(p+4),2);
		LCD_ShowHexNum(1,11,*(p+5),2);
		LCD_ShowHexNum(1,13,*(p+6),2);
	
		LCD_ShowHexNum(2,1,*x,2);
		LCD_ShowHexNum(2,3,*(x+1),2);
		LCD_ShowHexNum(2,5,*(x+2),2);
		LCD_ShowHexNum(2,7,*(x+3),2);
		LCD_ShowHexNum(2,9,*(x+4),2);
		LCD_ShowHexNum(2,11,*(x+5),2);
		LCD_ShowHexNum(2,13,*(x+6),2);
	
	
		while(1)
		{
				
		}
	
}

 

 

2、将复杂格式的数据转换为字节,方便通信与存储

#include <stdio.h>

/*将复杂格式的数据转换为字节,方便通信与存储*/
/*用指针将float型数据发送至单片机*/

/*
float型   ->    数组    ->      float型
*/

/*******************************/

unsigned char AirData[20];
unsigned char DataReceive[4];
/*发送数据*/
void SendData(const unsigned char *data,unsigned char count)
{
	unsigned char i;
	for(i=0;i<count;i++)
	{
		AirData[i]=data[i];          //将转换为数组的地址赋值给数组AirData[]
	}
}
/*接收数据*/
void ReceiveData(unsigned char *data,unsigned char count)
{
	unsigned char i;
	for(i=0;i<count;i++)
	{
		data[i]=AirData[i];          //数据接收
	}
}

/*******************************/

int  main(void)
{
	float  num = 0.125;
	float *fp;
	unsigned char i;
	unsigned char *p;

	p = (unsigned char *)&num;      //指针初始化   (unsigned char *)强制类型转化为同一级别

	SendData(p,4);                  //(不用理解,拿去用)发送数组地址值  将浮点型数据(0.125) 转化为 四个字节的数组(float) 为四字节

	/*****************************/
	printf("\nAirData=");
	for(i=0;i<4;i++)
	{
		printf("%x",AirData[i]);
	}
	/****************************/

	ReceiveData(DataReceive,4);   //读取数据

	fp = (float *)DataReceive;    //在转化为float型数据

	printf("\nnum=%f",*fp);
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单片机 指针 的应用 的相关文章

  • 深入理解Interpreter模式

    1 Interpreter模式是一个能给人留下深刻印象的模式 The Interpreter pattern describes how to define a grammar for simple languages represent

随机推荐

  • 本地容灾异地备份,本地容灾和异地容灾

    关于容来自灾备份 备份也是容灾的一种方式 我们认为应用级的备份是最传统的 在应用层进行复制 一般成本低廉数据级的容灾 只得是从存储层进行备份 这种备份的机制往往是实时的 适合关键的业务 并且能够做到实时的挂载 相对第一种 毕竟成本高一些 但
  • 用chargpt一分钟,一键生成PPT!

    ChatGPT狂飙160天 世界已经不是之前的样子 新建了人工智能中文站https ai weoknow com 每天给大家更新可用的国内可用chatGPT资源 这是 ChatGPT 从入门到精通 第 13 篇基础教程 有同学留言 问 还有
  • 页面缓存————Expires header(顺便提下ASP.NET常用的VaryByParam实现缓存)

    从事ASP NET开发也有1年多了 这期间发生了许许多多的事情 经过苦难的层层磨练 渐渐对ASP NET这个很多人说 简单易掌握 的东西有了逐步的认识和理解 自己也在慢慢的成长 在这1年多的期间非常感谢franky大哥给我前端上的指导 感觉
  • 贝叶斯分类(这个讲的比较清晰,一看就明白)

    原文地址 http www cnblogs com leoo2sk archive 2010 09 17 naive bayesian classifier html 1 2 分类问题综述 对于分类问题 其实谁都不会陌生 说我们每个人每天都
  • HDF5库的下载

    HDF5是科学计算中最常用的分层式数据存储格式 大部分计算软件都需要它的支持 然而 最近在下载HDF5库的时候 我突然发现 官方的下载链接竟然都指向了AWS 在国庆大背景下我的梯子被战略性封闭 于是全部404 不过这样就难住我了嘛 不可能的
  • oracle导出表结构的几种办法,oracle表结构和数据导出时的一些勾选项说明

    使用pl sql developer导出oracle数据库的表结构和表数据时 有一些勾选项供用户选择 需要用户根据实际情况进行勾选或取消 导出方法如下 一 只导出表结构 1 使用pl sql developer登陆数据库 2 选择Tools
  • [Pytorch系列-70]:开发环境 - 可视化工具visdom安装与使用方法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122073099 目录 第1章 概述
  • IP地址和网络地址及广播地址解析

    IP地址 IP地址有IPV4和IPV6两种 IPV4 由32位二进制数组成 一般用点分十进制来表示 IPV6 由128位组成 一般用冒号分隔 十六进制来表示 IP地址由两部分组成 网络部分 NETWORK 主机部分 HOST 例 192 1
  • 基于iscroll实现下拉和上拉刷新

    基于iscroll实现下拉和上拉刷新 2015 02 07 javascript moblie 插件 iscroll上拉刷新 js上拉刷新 js下拉刷新 在原生APP的开发中 有一个常见的功能 就是下拉刷新的功能 这个想必大家都是知道的 但
  • Sqlite嵌入式内存数据库的优化

    0 场景及问题 目前网关项目在使用Sqlite的数据库存储数据 但是我们使用的方式和一般的数据库使用有区别 导致出现了两个问题 Sqlite3占用内存迅速增长 这种增长是cat proc fd号 statm 的显示增长 区别于 sqlite
  • Android OpenGL ES 2.0绘图:绘制纹理

    http mobile 51cto com aengine 437172 htm public class MyGLSurfaceView extends GLSurfaceView public MyGLSurfaceView Conte
  • PanGu-Coder2华为盘古大模型来了!

    视学算法报道 机器之心编辑部 这次 华为代码生成大模型盘古 Coder2 采用了一种类似于 RLHF 基于人类反馈的强化学习 的框架 相较前代实现了更高的一次生成通过率 随着大模型成为 AI 开发新范式 将大语言模型集成至编程领域 完成代码
  • xenserver VM假死

    使用XenServer作为虚拟化平台 经常会有用户反映虚拟机会假死 并亮起非正常的Yellow图标 a 虚拟机不可用 这种现象发生的非常随机 发生在不固定的主机 不固定的虚拟机上 b 使用XenCenter无法正常的将其ShutDown 包
  • static关键字的四种用法

    在java的关键字中 static和final是两个我们必须掌握的关键字 不同于其他关键字 他们都有多种用法 而且在一定环境下使用 可以提高程序的运行性能 优化程序的结构 下面我们先来了解一下static关键字及其用法 static关键字
  • vue+高德离线地图vue-amap开发

    前言 在使用多次高德离线地图的插件 vue amap 感觉收获还是很多的 这里来整理下相关资料 效果图 目录 实现步骤 源码在最下面 一 安装插件 二 template配置基础的地图组件 三 data里面定义相关数据 四 撒点的实现 1 t
  • 0.96寸OLED屏硬件驱动电路

    0 96寸OLED屏硬件驱动电路 该电路适合把OLED驱动电路集成到自己的板子上 最终的原理图和PCB已经上传CSDN 可直接点击链接下载 https download csdn net download qq 31785559 59594
  • cocos creator入门教程实现简化版贪吃蛇

    开发工具 Cocos Creator和VS Code 开发语言 TS 简化版贪吃蛇的实现主要涉及的功能就是在吃到场景中随机产生产生的物体后 物体会到蛇头的后面并且跟随移动路径 其原理主要是通过数组来存储相关的坐标数据
  • hive-使用开窗函数实现百分比、topN、前百分比

    有一个订单表A 分别有order id 订单id user id 用户id amt 金额 三个字段 用sql实现以下功能 i 求订单总量为top3的用户及交易笔数 同时求出其交易笔数占全量订单笔数的占比 ii 求每个用户top3交易金额的订
  • SpringAOP JDK动态代理

    1 本篇博客的背景和目的 目前我本人正在学习SpringFramework的知识 这也是这个专栏的主题 我前面的几篇博文中 简单的认识了一下SpringFramework 记录了SpringFramework的环境搭建 记录了SpringI
  • 单片机 指针 的应用

    目录 直接访问物理地址下的数据 1 访问硬件指定内存下的数据 1 如设备ID号 2 将复杂格式的数据转换为字节 方便通信与存储 直接访问物理地址下的数据 1 访问硬件指定内存下的数据 1 如设备ID号 include