4 txsonfire

尚未进行身份认证

暂无相关简介

等级
TA的排名 13w+

stm32分散加载机制的学习

什么是分散加载单片机和电脑一样具有,存储镜像和运行镜像。生成的bin文件下载到flash里面,然后根据连接脚本加载到指定的地方运行。通常情况下代码段都是放在rom中运行的,而数据段是放在ram中运行的。有时候为了提高效率或是其他目的,放在rom中的部分代码需要在ram中跑,下载的地址和运行的地址不同。这就是分散加载最常见的使用方式。不只是代码段,分散加载机制可以将内存变量,定位于不同物理地址上...

2019-10-19 15:55:06

stm32 adc使用

adc配置adc配置时有个地方让我觉得很困惑:ContinuousConvMode,DiscontinuousConvMode这两个参数,乍一看只需要一个就好了,只要决定是不是连续转换就可以了。但实际上这两个参数是为了配置出更多的模式。经过查阅资料配置含义如下:ContinuousConvModeDiscontinuousConvMode转换模式DISABLE...

2019-09-24 21:31:55

iic spi uart 的基本知识

基本知识同步通信,异步通信同步通信:使用相同的时钟,没有起始位,停止位,效率高,主机提供时钟,是阻塞通信的方式。异步通信:不使用相同的时钟,发送方,发完一个字节数据,立马发送下一个字节。无阻塞通信方式。uart是异步通信spi,和iic是同步通信主机和从机spi总线上,只有一个主机。通过片选选中从机。iic上通过仲裁,是多主机方式,总线上都可以成为主机,都可以主动收发数据。...

2019-09-19 15:13:09

关于内存对其的一点思考

背景这几天需要设计协议,所以我重新思考了一下,内存对其的问题。之前的理解,内存对其的问题我也遇到过,之前写应用的一小段代码的时候。对于收到的数据,进行了强制转换大概是以下的情况。伪代码如下typedefstruct{ shortintheada; int data; ...}__attribute__((packed))Uart_Data;我使用一个数组接收一串...

2019-08-16 11:10:54

结构体声明位域的使用

背景知识结构体中的冒号表示位域。位域出现的原因是由于某些信息的存储表示只需要几个bit位就可以表示而不需要一个完整的字节,同时也是为了节省存储空间和方便处理。实际应用typedefunion{charu;struct{unsignedchara:1;unsignedcharb:1;unsi...

2019-06-19 16:29:28

BG2312 ascii hex 字符数组 字符串 总结

背景知识嵌入式开发有时候经常会解析传感器的数据,这里进行一下总结:GB2312是汉子的编码,每个汉字的hex,有两个8位的16进制数组成。参考:http://www.knowsky.com/resource/gb2312tbl.htm英文字符使用ascii进行编码参考:https://baike.baidu.com/item/ASCII/309296?fr=aladdin字符数组初始化...

2019-06-18 20:36:09

lwip学习

Lwip的基本功能ARP以太网地址解析协议IP协议,支持ipv4和ipv6ICMP支持网络调试与维护IGMP用于网络组管理UDPTCP支持tcp拥塞设计,rtt时间估计,自动回复重传DHCP,动态主机配置协议AUTOIP动态分配ip地址PPP点对点协议DNS域名解析SNMP简单网络管理协议关系图lwip提供3种用户变成方式,raw/callbackAPI,BSD-s...

2019-06-09 17:35:07

wireshark软件学习

wireshark软件简介wireshark软件界面主要包括3个部分数据包列表:软件抓到的所有的格式的数据包。单个数据包解析:鼠标选中其中一个数据包,软件会自动将数据解析出来。单个数据包原始数据:数据包对应的原始数据。单个数据包解析的内容有哪些:1.Frame(物理层):物理层的数据帧概况。2.EthernetII(数据链路层):数据链路层以太网帧头部信息。(包含mac地址)...

2019-06-05 21:40:35

c语言复习

sizeof和strlen的区别sizeof是一个关键字,并不是一个函数,计算的是变量的大小strlen计算的是字符串地址,一直到\0为止的,字符串的大小sizeof在编译的时候就已经确定了计算的结果,而strlen是在程序跑起来之后,才会得出计算结果。以上是原理,sizeof之所以是关键字,是因为它不需要包含其他头文件,并且后面可以不用打括号64位系统下判断,以下代码输出结果:...

2019-05-21 21:53:37

ros学习笔记-消息话题

学习目标自定义一种消息调用一个turtle,使用键盘控制读取这个turtle的为止信息,填充自己的消息,并发布出来订阅这个话题,打印出读取到的内容使用launch文件启动自定义消息话题自己定义的消息stringnamefloat32xfloat32yfloat32angle注意一下格式,类型和名称之间是空格,写成table会有问题在xml文件中增加依赖&...

2019-04-22 23:10:33

rplidar使用

rplidar的使用新上手的激光雷达,第一次使用。根据网上的教程,先搭建环境跑起来。安装rvizsudoapt-getinstallros-kinetic-rviz通过apt-get安装rviz,我的电脑上安装rviz的时候需要很多的依赖可以通过sudoapt-get-finstall试一下我的电脑上不行,干脆直接安装所有的依赖文件sudoapt-getinstal...

2019-04-10 22:55:39

stm32基本知识的梳理

启动文件在单片机跑到mian函数,应用程序之前的代码就是启动文件的代码。这部分的代码需要定义中断向量表,链接脚本编译生成的各个静态库文件.a文件。需要使用链接脚本一起,才可以,链接(重新组织出)出一个,完整有序的,包含所有信息的bin文件。以下以stm32f407的链接脚本为例1.设置入口ENTRYstm32设置的入口即是,中断向量表里的系统复位向量。32/*EntryPoi...

2019-03-15 16:52:49

stm32踩内存的问题

问题背景最近重构代码的时候发现一个踩内存的bug,当时没有时间将这个问题记录下来,这一次简单记录一下。问题描述经过打印发现代码中的数据会被莫名的改掉,全局搜索发现没有地方修改这个结构体。这个问题随机出现,确认代码被随机踩掉了数据。过程分析1.已经确认是内存被踩,首先看map文件,发现这个结构体附近是,另外一个线程的堆栈,有可能是堆栈越界了。经过分析发现,这个县城的堆栈剩余还是比较多的不会...

2019-01-01 22:32:03

python学习之柱状图

需求背景最近需要分析数据,之前画过折线图,这一次需要画柱状图。做项目的同时学习一点其他的小技能。现在需要将固定格式的数据,画成柱状图,将同一个点的数据,求出最大值,和最小值使用柱状图显示出来。实际的数据test_down_id:1061,y:5test_down_id:1061,y:5test_down_id:1061,y:5test_down_id:1062,y:-2t...

2019-01-01 22:01:21

stm32死机问题的处理

死机原理基本概念:连接寄存器LR:调动子程序时,自动存储下一次返回的地址,其实就是最近调用的那一次函数的地址。死机的过程:这里我们最需要关注的是第一步入栈:其中8个寄存器的顺序是其中出现异常时LR里面的值是固定的最后更新堆栈指针,我们根据最后使用的堆栈里面的内容,就可以知道出问题时的最后现场。死机定位思路简单来讲就是:找到死机时候的lr寄存器,然后根据lr寄存器的值,...

2018-11-28 10:48:21

Uart之数据溢出

Uart之数据溢出问题背景:在项目现场实施项目的过程之中,出现了一个问题。stm32的控制器,莫名其妙会死机,不定时会出现这个问题。出现之后系统指示灯不在闪烁,网络死机,服务器再也ping不同,下位机的控制器。经过debug发现了抓到了这个死机的点。我发现并不是硬件错误,没有调用hart_fault这个中断服务函数。但是主线程却没有跑起来。意外发现原来程序是反复进入,串口的中断里面。检查错误标...

2018-11-25 17:54:38

stm32 HAL库分析之CAN

stm32HAL库分析之CAN阻塞发送HAL_StatusTypeDefHAL_CAN_Transmit(CAN_HandleTypeDef*hcan,uint32_tTimeout)565{...

2018-07-29 22:24:20

stm32 hal库分析之uart

hal库uart收发阻塞发送(非中断方式)607/**608*@briefSendsanamountofdatainblockingmode....

2018-07-27 21:37:41

stm32 调试can总线丢帧的问题

stm32调试can总线丢帧的问题问题出现的背景需要写一个新的电机的驱动,使用can通讯,驱动比较简单,很快就写好了。自己单独测试一个电机的时候没有问题,正反转测什么的都很正常。本以为事情会很顺利,但是在测两个电机的时候,却发现很严重的问题,经常左电机不装或者是右电机不转。问题的解决步骤方案一:1.遇到这种问题通常都是加上一个延时,觉得可能就是发的太快了,时许上可能有问...

2018-07-18 14:10:15

can open 的学习

can总线基本知识的回顾1.从osi模型上看,can知识属于物理层和数据链路层.而canopen相当于can的应用层.是一种分布式无主机的串行通信方式.2.帧的种类包括,数据帧,遥控帧,间隔帧,过载帧,错误帧.3.同一个网络必须设定相同的通信速率,不同的网络可以设定不同的通信速率.通信速率最高为1M,一般为250k,500k.根据通信线的长度会降低频率.4.根据数帧的id来仲裁,该发那一...

2018-07-14 23:27:42

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。