自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

物联网_嵌入式

  • 博客(31)
  • 资源 (10)
  • 收藏
  • 关注

原创 嵌入式知识盲区扫除计划(永久更新)

(1)系统时钟 Systick 与 专用定时器 Timer系统时钟,用于操作体统,它是系统的时间计时器,系统根据它得到时间值,来完成某些功能。它具有公用性。比如用于轮询操作的实现。专用定时器,它通常用于和APB,APH相关的地方,用于某些需要计时的地方。它具有专用性,哪一个需要,哪一个就根据需要构成一个专用定时器。最后,它们连个是没有关系的,是相互独立的。......

2021-08-10 16:47:36 380

原创 嵌入式开发问题集锦(永久更新)

一 ,STM32F4xx_HAL_Driver是固件库,STM32F4xx_StdPeriph_Driver是标准库。它们所包含的功能是相同的,只是实现功能的方式不同,在一个工程里面只能使用一种库。

2021-07-08 14:20:54 1440

原创 车载CAN通信相关的DBC文件制作方法

CAN通信,车载电子,DBC,AutoSar

2024-04-16 15:32:54 345 3

原创 基于车载以太网的OTA升级

22年4月份接到一个订单:广汽乘用车M8,OTA升级的开发。OTA(Over-the-Air Technology),理解的话就是:无线传输技术。本次的开发,运用到的知识包括:TCP/IP协议,DoIP协议,UDS协议,开发语言为C语言,开发环境为Linux,gcc编译,Linux环境下调试,Make文件等等。

2022-12-13 14:15:30 3277 4

原创 毕业三载,回顾反思,继往开来

智慧农业

2022-10-28 11:04:09 335 6

原创 linux下的脚本文件编写

linux下脚本的编写

2022-06-29 18:34:41 3749

原创 解决模拟盘项目BUG2

首先说明以下bug, 上一篇文章说到过,当上位机宕机或上位机突然断电时或使用时拔掉网线,导致上位机再想进行连接时就会连接不到。试验过很多种方法:1. 重新初始化W5300网卡;2. 对网卡进行复位;3. 直接写入网卡对应的寄存器;4. 拔掉网线后触发关闭套接字;5. 直接修改判断条件,拔掉网线后让程序正常执行关闭套接字;这些都不行!最后,对整个系统进行软件复位,也就是对CPU复位。下面解说解决方法:1. 飞了一根线,把LINKED灯,连接到STM32F4的引脚上,让C

2021-12-23 15:31:24 430 4

原创 模拟盘项目bug解决之路

最近一直挺忙的,项目临近交付,上位机那边反馈给我两个bug。1.当上位机发错信息时,我这边的通信板就不能正常工作了。2.当上位机宕机,上位机突然断电时,再想进行连接时就会连接不到。上诉的两个bug当我这边复位,重新启动之后是可以解决的。讲真上位机告诉我这两个bug的时候,我是很无语的,首先都不是我这边程序逻辑直接出问题,其次都是上位机那边出问题了,导致我这边无法正常工作,而且只要重新启动就可以消除这些问题了。我能怎么办,我也很绝望。心里面的职业素养告诉自己,我这边确实也有问题,程序的容错

2021-11-27 17:00:36 1703

原创 int类型千百面

(1) int A;int 类型变量A,占4字节。(2) int *A;int类型指针变量A,占4字节。(3) int A[n];int类型的数组A,占4*n字节。(4) (int *)A[n];int类型的指针数组A,本质是数组,数组里面存的都是int类型的指针。占4*n字节。(5) int (*A)[n];指向二维数组的int类型的指针变量A,指向拥有n个元素的数组,占4个字节。通常用于二维数组的指向问题,不过这个不常用,反正我工作一年多了,基本没用过。举例:

2021-10-14 14:54:19 651

原创 排序算法C代码实现

一.插入排序//插入排序void InsertSort(int *a, int n){ int i = 0; for(i = 0; i < n - 1; i++) { int end = i; //记录有序序列的最后一个元素 int tmp = a[end + 1]; //待插入的元素 while (end > -1) { if(tmp < a[end]).

2021-10-13 15:19:54 82

原创 C语言变量命名规则

(一)一般规则(1) 望文知意(2) 长度合适(3) 多词写法(4) 避免数字(5) 作用域符(二) 标识符命名规则(6) 命名模型(7) 前缀规则

2021-10-09 11:31:18 988

原创 C语言编码风格

编码规则 1 函数说明:编辑规则 2 留出空行:编辑规则 3 删除代码编辑规则 4 提倡风格编辑规则 5 参数分段参编辑规则 6 正反函数命名法编辑规则 7 确定优先级编辑规则 8 复合表达式相关编辑规则 9 尽量避免否定运算编辑规则 10 void参数运用...

2021-09-24 15:52:48 248

原创 模拟盘项目收尾总结

前言: 这个项目上周三就算是完成了,之前几天在做最后的测试。也是突然想到,编写程序和测试程序不能是同一个人。若是同一个人的话,总是会顺着自己已经写好的思路进行测试,一个固定得的路线,另一个人测试的话,就会不同的思路去进行测试,检验等。 我是去年6六月份毕业,然后进了一家智能驾驶公司,在那里待了3个月,总是出差,就辞职了。中间停下了一段时间,在今年1月份来到了现在的这家公司,这家也是跟驾驶相关的,不过是火车,哈哈。当然虽然,换工作了,我的大方向还是不变的,搞得还是嵌入式开发...

2021-09-08 17:18:28 124

原创 STM32F4系列CAN总线频率计算法

一.找到外部晶振 外部晶振相当于整个系统,板子的心脏。晶振频率的大小需要从板子找到晶振器,在其型号上有晶振频率的大小,如图这个晶振器的频率为25MHz。二. 代码进行配置,并得出总线频率/******************************************************************************************************************************************...

2021-08-24 13:22:19 4249 4

原创 第一次负责公司一个项目的开发,阶段性总结

一 项目背景 项目名称是模拟盘,其中主控使用的是STM32F407ZGT6,使用W5300网卡,两种通信方式:tcp_modbus(ip协议) 和 CAN通信。 从机,就是主控的下属设备。使用的芯片相同,主要就是引脚的输入输出,和CAN实现与主控之间的通信。二 问题分析 第一次负责一个项目的,有紧张,更多的还是欣喜。来公司半年,终于要单独负责一个项目的开发了,这应该是我成长的一个体现。之前干的是某个系统中的某一块功能。从接手这个项目到今天,已经快一个...

2021-08-06 09:47:27 417

原创 模拟寄存器开发实例总结

一. 开发背景(1)模拟仿真仪表,连锁设备完布置完成后,外部铁路段,不一定同步完成,因此不能进行连锁设备的检测,这降低了,作业效率。因此有了模拟仿真器,它可以模拟铁路段上的设备,设备在程序中,体现为不同的寄存器,及寄存器上的不同位。这里程序编写虚拟寄存器,来达到仿真的效果。系统图为:二. 仿真器部分程序(1)写入寄存器操作,这里补充说明两个函数。memcpy(void *dst, void *data, int count); //特点是可以使用于任何类型的数据strcpy(char *dst,

2021-06-29 13:31:33 789

原创 ping指令使用开发总结

一. 吐槽!!!上个星期,还好使的板子,好好的程序,好好的ping通。今天,就 不 好 使 了!!!我能怎么办,我也很绝望!!!我 @#@#¥#%¥!%E%……都快疯了!最后换了个板子,终于又ping通了,赶紧写了个总结,记录正确的方法。二. ping 指令使用背景整个系统由三部分组成,铁路段信息采集及制动部分,网络传输的通信板,信息综合处理的核心板。通信版拥有两张W5100网卡,核心板是2X2冗余,它也有两张网卡,也是W5100网卡。(1)首先,板子和网线的连接方式如下,白桔色,白绿色在上,就是

2021-06-21 13:59:15 331

原创 SRAM驱动开发实例

一 我写博客的原因,应该说是有两点吧(1)一点是对阶段性工作的总结,虽说技术创新,技术创新,但在创新之前有一个技术积累的过程,写博客,便于总结,回忆。(2)另一点是受到带我的师傅的影响,他是公司的技术主管,他提到一个词让我感触很大,“开源”。他教我学会了很多东西,所以我写的文章,上传的资源都是免费的,希望能够对有兴趣者,及同行有所帮助。二 驱动开发流程新来一个项目,有了新的需求,上司给你分配了新的任务,给了你一块板子,告诉了你需求,然后让你完成驱动程序的部分。(1)接到一块新的板子,不要立刻上手

2021-06-16 11:16:21 558

原创 UDP组播开发测试实例

一 前言(1)负责项目中组播开发测试工作。期间由于缺乏设备的原因,中间搁置了好久。直到昨天下午临近下班,终于,完成udp组播整个的开发测试工作。二 开发过程(1)首先从实现udp协议说起。udp协议使用的结构体如下:typedef struct socketaddr { uint16_t sin_Family; //协议族 uint16_t sin_port; //端口号 uint32_t sin_addr;/*mac[6] / udp/tcp port[2] + ip[4]*/}S

2021-06-10 10:43:17 1573

原创 驱动开发常见开发单词三

assigned ------------ 分配的、指定的enetity ---------------- 实物、实体、本质restore --------------- 重建、归还discard --------------- 抛弃、丢掉reference ------------ 参考、提到、提供···参考、提及transmitted ---------- 传输、传送oversampling ------- 过采样fractional ------------- 部分的、零碎的baud

2021-06-04 11:24:18 146

原创 tcp_modbus测试开发实例

一. 测试背景(1)开发项目名称:地面控制平台。(2)地面控制平台是一个铁路,列车综合控制系统。整个系统的逻辑原理是,铁路分为很多段,铁路段拥有很多传感器,采集相关信息(例:列车位置信息等),通过tcp_modbus协议进行信息传输,地面控制平台接收信息,处理信息,下达指令,铁路段接收指令,执行指令。二. 测试步骤(1)把测试用的电脑与待测试系统,设置在同一个网段。(2)使用ping指令,检测电脑与待测试系统能否联通。要熟练使用ping指令,它是网络开发,测试常用的,且非常实用的一个检测指令。p

2021-05-27 10:37:53 764

原创 GPIO常用操作函数

(1)void GPIO_DeInit(GPIO_TypeDef* GPIOx)功能:将GPIOx外设寄存器初始化为默认值注释:判断GPIOx具体为哪个端口,再通过操作RCC_APB2RSTR(APB2外设复位寄存器)对其寄存器进行复位例:GPIO_DeInit(GPIOA);(2)void GPIO_AFIODeInit(void)功能:将复用功能(重映射与EXTI设置)重设为默认值注释:通过操作RCC_APB2RSTR(APB2外设复位寄存器)对其寄存器进行复位例:GPIO_AFIODe

2021-05-21 14:16:34 6757

原创 串口驱动开发总结

一 串口驱动开发总结(1)这个项目的开发已经过去了几个月了,突然想写一篇总结文档,尽量回忆。仔细回想一下要考虑的东西,用到的东西很多。二 串口驱动开发过程(1)串口实物,参考 rs 232. 它是一个9孔的通信方式。(2)在进行编码之前,要先尽可能多的了解串口通信方式,记得它有一个很特殊的一点就是它的信息的传输是按bit传输,即以此只能传输一个bit, 不能像以太网口那样,一次传输一包的数据。(3)我用到的芯片是STM32F4XXX处理器,所以在进行编程前,先看它的开发手册,注意配置串口都需要哪些

2021-05-19 17:47:55 753

原创 git 版本管理工具使用总结

一 这里不讲原理,不讲理论(1)只是记录一下,工作中常用到的git指令(2)也算是工作总结的一部分,方便复习,回忆。二 git常用指令git config --global user.name “Mr.zhang” ******用户名字git config --global user.email xxx@.com ******用户电子账号git config --list ******查看配置信息git init ******初始化本地仓库git add -A *****

2021-05-18 11:08:30 170

原创 软件中间层开发实例

一 我的工作(1)并不是单纯的驱动开发,还有嵌入式软件开发,测试程序的编写,以及搭建测试,对程序进行正确性,稳定性测试。黑盒测试,白盒测试都有。二 中间层程序编写背景(1) 程序的开发背景是:一个集中终端控制平台,应用于火车列车控制,另一个名字可以称为:火车综合控制平台。(2)简述一下,系统整体运行逻辑。把铁路分为若干个铁路段,段内分布有很多传感器,用于收集列车当前所处位置的相关信息。(3)收集到的信息,通过互联网进行转发,经过通信版传输到主控板上。主控板是一个2X2 冗余的设计,进一步保证列

2021-05-17 15:27:10 1372 6

原创 驱动开发工作总结一

一,STM32F4芯片,网卡,udp协议,驱动程序,应用程序相关开发(1) 芯片配置的时候,我们只能对引脚(Pin A,B,C,D,G,E,F.....)进行相关的配置,置位或拉低,时钟设置频率设置,输入输出模式等。(2) 对网卡进行配置时,一定要提前阅读网卡开发技术手册,写程序的时候要紧紧考虑着技术手册,手册中有参考例程有配置参数。(3) ping指令,ping通代表着网卡在硬件层次上没有问题,并不是可以运行udp协议了。详细参考四层网络通信结构ping指令的传输,和udp协议的传输不在同

2021-04-27 17:57:21 173

原创 黑盒测试与白盒测试

黑河测试:软件测试中的一种测试方法,它的理论是,不去关注程序实际运行的逻辑,而是直接输入测试数据,然后对比程序运行的结果,和自己算出的结果是否相同。若是相同则代表着程序是正确的。白盒测试:软件测试中的一种测试方法,它的理论是,关注,理解程序的运行逻辑,输入测试数据,观察程序是否是按照正确的逻辑执行的。...

2021-04-27 16:41:23 250

原创 驱动开发常见英文单词 二

recommend 推荐,建议exception 例外calibration 校准,标定modify 修饰,修整ethernet 以太网flash memory 快速内存marix 线路concurrent 并行multilayer 多层的auxiliary 辅助的,备用的simultaneously 同时,联立,急切地instruction 指令,指示interface 接口perform 运转,工作store 保存garphic 图像,图案arbit

2021-04-01 17:52:31 157

原创 驱动开发常见英文单词 一

驱动开发常见英文单词 一peripheral 外围的pull 拉floating 浮空analog 模拟bitwise 位元,位运算freeze 锁住locking 锁住toggle 切换,转换capple 功能changing 改变,变化port 端口access 存取purpose 有意,打算,目的atomic 原子modify 修改,缓和,修饰confige

2021-03-30 14:57:03 348

原创 PID控制算法

网上存在很多PID控制算法的宏观性定义及解释,在这里我不在重复那些内容,我将以我工作中用到的PID控制算法,进行详细的解释。我是车辆控制应用工程师,但我更喜欢称自己为嵌入式软件开发工程师。PID控制算法:P 比例I 积分D 微分这可以说就是PID控制的核心,所以数学在算法中真的非常的重要。我使用的算法中只用到了P,即PID控制中的比例。用于实现无人驾驶中的横向控制,即车辆前轮转角。它有多个变量共同影响,最后通过算法计算出期望转角。比如变量航向角偏差,方位角偏差等,它们分别占期望转角一定的比例

2020-07-06 22:25:20 569

原创 CAN总线

CAN是控制器局域网络(Controller Area Network, CAN)的简称。是国际上应用最广泛的现场总线之一。1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。与一般的通信总线相比,CAN总线的数据通信具有突出

2020-07-04 20:33:54 375

软件需求分析,软件概要设计,DBC文件模板,芯片手册,UDS协议,AUTOSAR协议

软件需求分析,软件概要设计,DBC文件模板,芯片手册,UDS协议,AUTOSAR协议

2024-03-11

A5X项目,SPI通信作为主

A5X项目,SPI通信作为主

2024-03-05

S32kds静态库的封装方法

S32kds静态库的封装方法

2024-03-04

can通信矩阵,DBC文件的配置方法

can通信矩阵,DBC文件的配置方法

2024-03-04

座舱类代码,诊断,升级

座舱类代码,诊断,升级

2024-02-27

AUTOSAR协议文档,网络管理,UDS,SOMEIP

AUTOSAR协议文档,网络管理,UDS,SOMEIP

2024-02-19

芯片技术资料手册,包含NXP芯片,国产芯片

S32K116, S32K118, S32K142, S32K144, S32K146, S32K148 Datasheet; E3400,E3600 Datasheet;

2024-01-23

ZCANpro工具,黑盒USBCANFD 200U 可以用来检测CAN,CANFD信号

ZCANpro工具,黑盒USBCANFD 200U 可以用来检测CAN,CANFD信号

2024-01-16

UDS协议,SPI通信协议,BootLoader协议,升级流程图

UDS协议,SPI通信协议,BootLoader协议,升级流程图,git简明指南,TCP状态切换机制,SVN简明教程

2023-12-13

指针战舰皮肤-非常的好用

指针战舰皮肤,非常的好用

2023-11-09

linux 编程相关技术资料,用于学习

linux 编程相关技术资料,用于学习

2023-10-19

串口,SPI,CAN等全功能

NXPS32K14X系列

2023-07-17

SOMEIP-SD协议理解

SOMEIP-SD协议理解,基础概念,图文比对,通信流程介绍结合报文进行详细的解读。

2022-12-14

BeyondCompare

文件对比软件,高效的进行对比,调整

2022-04-15

CANTest测试软件

对CAN通信数据进行测试一个软件

2022-04-15

模拟盘主控板流程图.zip

使用visio编辑的例图;模拟盘项目的详细程序设计流程图

2021-11-25

LFT-COM-V1.0.0.zip

模拟盘项目源码。 内部含有W5300,W5100网卡的驱动程序和应用程序;FSMC总线驱动;CAN通信驱动配置及应用层调用。

2021-11-25

w5300_test.zip

W5300,W5100网卡驱动程序; IAR8.30.1,经过验证测试

2021-09-01

STM32Cube.zip

嵌入式开发助手,可生成驱动代码,具有参考作用

2021-08-18

Wireshark.zip

用于检测网络信息传输,检测tcp/ip协议,检测udp协议

2021-05-27

Visio2013_64位_v.zip

UML,可以用于查看和编辑程序流程图

2021-05-25

TortoiseSVN.rar

svn版本管理工具,便于系统化的关系软件。

2021-05-25

Git-2.26.0-64-bit.zip

git版本管理工具,适用于Windows环境下,终端操作方式

2021-05-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除