0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机修改寄存器地址的操作方法

华维单片机林北 来源:华维单片机林北 作者:华维单片机林北 2022-04-13 08:08 次阅读

C语言小学生都能学会,你还说单片机很难,难道你连小学生都不如吗

我是很认真的,没有在跟你吹水,前段时间有邻居知道我是攻城狮,闲聊的时候想让我带他的女儿学习单片机,当时我就拒绝了,因为在我的认知范围里这个年纪的小朋友很难学的会,而且女孩子家家学做什么攻城狮,心中一百个白眼翻上天,后来她说她女儿之前学了C++,有点基础,当时我就愣住了,现在的小学生都那么牛X的吗。不过最后我还是让她回去慎重考虑一下,毕竟我这里培训的定位是那些学习完之后想找到工作的,我们课程也是以项目驱动去学习,年纪这么小的学生学校里的科目课程就已经眼花缭乱了,还是留一点童年给人家吧。

关于单片机要想修改它的设备地址寄存器地址,可以用后面的指令去修改,比如说要想改地址,可以用0106这个功能去修改它,比如说想改成02,就可以去按照它这个方式来去修改一下,比如说一个产品,从需要用两个点的温湿度传感器,这个时候就用两个,不可能让它两个都是用同一个地址,所以要改,比如买了一个产品,它默认的是01,要把它地址改成02,用00这个功能码修改,它是写单个寄存器,01可以是06,然后要更改这个设备地址,设备地址寄存器地址是0066,所以要是0066,接下来要改地址,要改的地址要给它个数据。

单片机修改寄存器地址的操作方法

比如说要改成02,最后是校验,这个时候给它发这个指令,它就会把这个地址改成02,点击发送,对于一个正确的命令帧它会响应,手册当中也会指出来它要说什么,它会响应修改后的设备地址02,然后功能码00,接着是寄存器地址0066,最后是目标地址,修改的这个目标地址0002这个时候就修改好了,接下来如果说还用原来的这个地址去读它,肯定就读不出来了,可以试一下,再用01,03,然后用0000,然后0002,这个时候再去读它的时候它就没有响应。

单片机修改寄存器地址的操作方法

它没有响应,原因是什么?因为这个设备它的地址已经不符了,发给它01的时候,它的设备地址是02,它第一次比较这个地址的时候,它就知道不是发给它的,所以它后面的数据是不会去解析处理,它就不会给你返回数据,它只有对于正确的应询问询真它才会给出响应,要用0二,CRC校验也要正确,然后功能码03,然后连着读两个寄存器,从00这个寄存器开始读,还是读的温度和湿度,这个地址对于这个位寻帧,它的交易码可以通过工具,可以用这个来计算一下获取,给出了具体的一个响应,功能码返回字节数,后面是校验,这时候就得到了温度和湿度的数据。

这个时候每次都要计算校验码,不太方便,一些朋友手头上可能没有温湿度传感器,也没有USB转485的设备或者转换器,可以用工具来模拟,可以用作为从机来模拟一下,用它作为主机如何去读取温湿度传感器的数据,首先把串口枪给它关掉,然后先连接一下打开串口COM5,然后900波特率八位数据位没有机构校验,停止位点击OK,要读温湿度传感器,但是设备地址是二,从0开始读寄存器,就是0读两个寄存器,然后点击OK,这个时候它就把温湿度传感器读过来了,读过来之后可以看到它已经把它转成了十进制来显示了。

单片机修改寄存器地址的操作方法

它具体的发的数据是什么?先把它停止,然后把这个数据拷贝出来报备,可以对照一下,把发送的拷贝出来,返回的值实际上也是一样的,借助工具就很方便,不再需要单独的去找一个网站去计算CRC校验码了,可以借助它来实现相关的操作,当然也可以用它来实现修改地址,它一般就提供两个功能码,可以用功能码去读写多个寄存器,可以去读写多个寄存器,实际上就是提供两个功能码03和06,对一个层级设备来说,要么就是说可以去读它的数据,它返回数据给我们,要么就是去修改它的一些设置或者一些参数,所以这两个功能码一般的产品来说基本上都是足够了。

对单片机感兴趣的可以查看往期分享内容,希望能帮助大家在学习单片机的路上少走一些弯路,想要入门单片机可以持续关注创为单片机编程,,回复“带我学习”查看更多内容分享。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5999

    文章

    43968

    浏览量

    620744
  • 寄存器
    +关注

    关注

    30

    文章

    5025

    浏览量

    117709
  • 设备
    +关注

    关注

    2

    文章

    4170

    浏览量

    69217
收藏 人收藏

    评论

    相关推荐

    什么不能修改寄存器

    各位有没有用过ADS131E08,为什么不能修改寄存器,01h CONFIG1 ,03h CONFIG3,修改之后就停止工作了。下面是读出的各个寄存器的值0x01: 0x930x02: 0xe0
    发表于 06-20 15:30

    你知道STM32操作寄存器方法有哪些吗

    STM32的寄存器操作在使用STM32单片机编程时一般都用ST给的库函数编程,库函数编程的底层就是对单片机寄存器
    发表于 02-28 07:13

    寄存器操作方法的经验和其总结

    接触了一阵子的STM32函数库,使用起来挺方便的,但是很少有处理器会有函数库,大部分情况下还是要自己来对寄存器进行操作,所以还是不要生疏了对寄存器操作。 对
    的头像 发表于 12-19 09:30 8483次阅读
    对<b class='flag-5'>寄存器</b><b class='flag-5'>操作方法</b>的经验和其总结

    寄存器操作方法_对寄存器操作的通用方法总结

    本文主要详解寄存器操作方法以及对寄存器操作的通用方法总结,具体的跟随小编来了解一下。
    的头像 发表于 05-22 15:53 2.1w次阅读

    寄存器的名称和地址的映射详细资料分析

    本文档的主要内容详细介绍的是寄存器的名称和地址的映射详细资料分析。首先要清楚的一点,所有操作,最终目的都是操作寄存器一,对比51
    发表于 07-01 17:42 1次下载
    <b class='flag-5'>寄存器</b>的名称和<b class='flag-5'>地址</b>的映射详细资料分析

    STM32单片机修改寄存器的位操作方法(全网最全)

    使用 C语言对寄存器赋值时,我们常常要求只修改寄存器的某几位的值,且其它的寄存器位不变,这个时候我们就需要用到 C 语言的位操作方法了。1
    发表于 11-19 09:06 33次下载
    STM32<b class='flag-5'>单片机修改寄存器</b>的位<b class='flag-5'>操作方法</b>(全网最全)

    芯片与寄存器

    芯片与寄存器作为一个嵌入式开发人员,从接触第一块单片机的时候,就一定会听到一个此,叫做寄存器单片机的很多功能都是通过配置修改寄存器来实现的
    发表于 11-23 16:21 49次下载
    芯片与<b class='flag-5'>寄存器</b>

    32单片机 C语言 寄存器(四)

    32单片机C语言相关知识以及寄存器地址名称映射分析
    发表于 11-29 10:06 12次下载
    32<b class='flag-5'>单片机</b> C语言 <b class='flag-5'>寄存器</b>(四)

    STM32寄存器的简介、地址查找,与直接操作寄存器

    什么是寄存器提到单片机,就不得不提到寄存器。根据百度百科介绍,寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来
    发表于 11-30 13:51 11次下载
    STM32<b class='flag-5'>寄存器</b>的简介、<b class='flag-5'>地址</b>查找,与直接<b class='flag-5'>操作</b><b class='flag-5'>寄存器</b>

    STM32的寄存器操作

    STM32的寄存器操作在使用STM32单片机编程时一般都用ST给的库函数编程,库函数编程的底层就是对单片机寄存器
    发表于 01-13 15:43 18次下载
    STM32的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    修改寄存器默认值的方法

    寄存器默认值,也叫复位值,是当reset或者set有效时寄存器输出的值。对于一个DFF来说,如下图,当reset为0时,Q输出0;当set为0时,Q输出为1(外部使用时保证reset与set不同时为0)。
    的头像 发表于 09-28 14:13 1041次阅读

    修改寄存器默认值的方法有哪些

    寄存器默认值,也叫复位值,是当reset或者set有效时寄存器输出的值。对于一个DFF来说,如下图,当reset为0时,Q输出0;当set为0时,Q输出为1(外部使用时保证reset与set不同时为0)。
    的头像 发表于 01-30 16:30 1747次阅读
    <b class='flag-5'>修改寄存器</b>默认值的<b class='flag-5'>方法</b>有哪些

    单片机寄存器和存储器哪个好

    呢?接下来泰浩微就为大家进行简单的讲解。 单片机寄存器可以分为哪几种 一、什么叫单片机寄存器 1、单片机
    发表于 03-21 15:18 404次阅读

    应用笔记|直接修改寄存器来输出内部时钟的方法

    关键字:MCO,手动修改寄存器 目录预览 1 在特殊情况下使能 MCO 功能的方法 2 具体实现 3 总结 1. 在特殊情况下使能 MCO 功能的方法 在对某些不容易复现的问题进行代码调时,需要观察
    的头像 发表于 06-13 17:35 583次阅读
    应用笔记|直接<b class='flag-5'>修改寄存器</b>来输出内部时钟的<b class='flag-5'>方法</b>

    直接修改寄存器来输出内部时钟的方法

    电子发烧友网站提供《直接修改寄存器来输出内部时钟的方法.pdf》资料免费下载
    发表于 09-19 15:43 0次下载
    直接<b class='flag-5'>修改寄存器</b>来输出内部时钟的<b class='flag-5'>方法</b>