自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

东川

编程如练功,一日练得一日功,一日不练十日空。

  • 博客(218)
  • 资源 (160)
  • 收藏
  • 关注

原创 Excel数据透视表

数据透视图

2022-04-27 00:04:26 3440

原创 Excel函数与公式

Excel函数与公式

2022-04-26 23:38:08 2040

原创 Excel基础操作

Excel基本操作

2022-04-25 00:05:35 23480

原创 C语言进阶第48式:函数设计原则

函数设计原则函数从意义上应该是一个独立的功能模块;函数名要在一定程度上反映函数的功能;函数参数名要能够体现参数的意义;尽量避免在函数中使用全局变量;当函数参数不应该在函数体内部被修改时,应加上 const声明;如果参数是指针,且仅作输入参数,则应加上 const声明;不能省略返回值的类型–如果函数没有返回值,那么应声明为void类型;对参数进行有效性检查–对于指针参数的检查尤为重要;不要返回指向“栈内存”的指针–栈内存在函数体结束时被自动释放;函数体的规模要小,.

2022-04-21 16:10:04 585

原创 C语言进阶第47式:递归函数分析

递归的数学思想递归是一种数学上分而自治的思想递归需要有边界条件一当边界条件不满足时,递归继续进行;一当边界条件满足时,递归停止;递归函数函数体内部可以调用自己递归函数-函数体中存在自我调用的函数;递归函数是递归的数学思想在程序设计中的应用-递归函数必须有递归出口;-函数的无限递归将导致程序栈溢出而崩溃;递归模型的一般表示法递归函数设计示例一:用递归的方法编写函数求字符串长度递归版strlen#include <stdio.h>.

2022-04-21 15:59:34 151

原创 C语言进阶第46式:函数与宏分析

函数与宏宏是由预处理器直接替换展开的,编译器不知道宏的存在;函数是由编译器直接编译的实体,调用行为由编译器决定;多次使用宏会导致最终可执行程序的体积增大;函数是跳转执行的,内存中只有一份函数体存在;宏的效率比函数要高,因为是直接展开,无调用开销;函数调用时会创建活动记录,效率不如宏;函数与宏,示例如下#include <stdio.h>#define RESET(p, len) \ while( len > 0 ) .

2022-04-21 15:45:34 135

原创 C语言进阶第45式:函数参数的秘密(下)

函数参数的秘密

2022-04-21 15:36:58 137

原创 C语言进阶第44式:函数参数的秘密(上)

函数参数函数参数在本质上与局部变量相同在栈上分配空间;函数参数的初始值是函数调用时的实参值;函数参数的求值顺序依赖于编译器的实现示例如下#include <stdio.h>int func(int i, int j){ printf("%d, %d\n", i, j); return 0;}int main(){ int k = 1; func(k++, k++); printf(

2022-04-21 15:21:29 157

原创 C语言进阶第43式:函数的意义

C语言中的函数函数的由来模块化程序设计C语言中的模块化面向过程的程序设计面向过程是一种以过程为中心的编程思想;首先将复杂的问题分解为一个个容易解决的问题;分解过后的问题可以按照步骤一步步完成;函数是面向过程在C语言中的体现;解决问题的每个步骤可以用函数来实现;声明和定义声明的意义在于告诉编译器程序单元的存在;定义则明确指示程序单元的意义;C语言中通过extern进行程序单元的声明;一些程序单元在声明时可以省略extern..

2022-04-21 13:53:50 118

原创 C语言进阶第42式:内存操作经典问题分析二

常见内存错误结构体成员指针未初始化;结构体成员指针未分配足够的内存;内存分配成功,但并未初始化;内存操作越界;示例1如下#include <stdio.h>#include <malloc.h>void test(int* p, int size){ int i = 0; for(i=0; i<size; i++) { printf("%d\n", p[i]); } free

2022-04-21 13:36:35 834

原创 C语言进阶第41式:内存操作经典问题分析一

野指针指针变量中的值是非法的内存地址,进而形成野指针;野指针不是 NULL 指针,是指向不可用内存地址的指针;NULL 指针并无危害,很好判断,也很好调式;C语言中无法判断一个指针所保存的地址是否合法;野指针的由来局部指针变量没有被初始化;指针所指向的变量在指针之前被销毁;使用已经释放过的指针;进行了错误的指针运算;进行了错误的强制类型转换;示例如下#include <stdio.h>#include <malloc.h>int m

2022-04-21 13:30:04 116

原创 C语言进阶第40式:程序的内存布局

程序的内存布局

2022-04-21 00:02:52 901

原创 C语言进阶第39式:程序中的三国天下

栈,堆和静态存储区是程序中的三个基本数据区一栈区主要用于函数调用的使用一维区主要是用于内存的动态申请和归还一静态存储区用于保存全局变量和静态变量

2022-04-20 21:45:37 147

原创 C语言进阶第38式:动态内存分配

动态内存分配的意义C语言中的一切操作都是基于内存的;变量和数组都是内存的别名:一内存分配由编译器在编译期间决定;一定义数组的时候必须指定数组长度;一数组长度是在编译期就必须确定的;malloc和free 用于执行动态内存分配和释放malloc 和 freemalloc所分配的是一块连续的内存;malloc以字节为单位,并且不带任何的类型信息;free用于将动态内存归还系统;void* malloc(size_t size);void free(void* po

2022-04-20 21:30:28 119

原创 C语言进阶第37式:指针阅读技巧分析

指针阅读技巧解析一从最里层的圆括号中未定义的标示符看起;一首先往右看,再往左看;一遇到圆括号或方括号时可以确定部分类型,并调转方向;一重复2,3步骤,直到阅读结束;#include <stdio.h>int main(){ int (*p1)(int*, int (*f)(int*)); int (*p2[5])(int*); int (*(*p3)[5])(int*); int*(*(*p4)(int*))(in..

2022-04-20 21:18:55 446

原创 C语言进阶第36式:函数与指针分析

函数类型C语言中的函数有自己特定的类型函数的类型由返回值,参数类型和参数个数共同决定int add(int i, int j)的类型为int(int, int)C语言中通过typedef为函数类型重命名typedef type name(parameter list)例如:typedef int f(int, int);typedef void p(int);函数指针函数指针用于指向一个函数;函数名是执行函数体的入口地址;可通过函数类型定义函数指针: FuncType

2022-04-20 21:14:51 118

原创 C语言进阶第35式:数组参数和指针参数分析

为什么C语言中的数组参数会退化为指针?退化的意义C语言中只会以值拷贝的方式传递参数;当向函数传递数组时:将整个数组拷贝一份传入函数;将数组名看做常量指针传数组首元素地址;C语言以高效作为最初设计目标:a)参数传递的时候如果拷贝整个数组执行效率将大大下降。b)参数位于栈上,太大的数组拷贝将导致栈溢出。二维数组参数二维数组参数同样存在退化的问题-二维数组可以看做是一维数组-二维数组中的每个元素是一维数组二维数组参数中第一维的参数可以省略void f(i...

2022-04-20 21:03:53 101

原创 C语言进阶第34式:多维数组和多维指针

指向指针的指针指针的本质是变量;指针会占用一定的内存空间;可以定义指针的指针来保存指针变量的地址值;为什么需要指向指针的指针?指针在本质上也是变量;对于指针也同样存在传值调用与传址调用;示例如下#include <stdio.h>#include <malloc.h>int reset(char**p, int size, int new_size){ int ret = 1; in...

2022-04-20 19:15:48 106

原创 C语言进阶第33式:main函数与命令行参数

下面的main函数定义正确吗?main函数的概念C语言中main函数称之为主函数;一个C程序是从main函数开始执行的;int main(){ return 0;}main函数的本质main函数是操作系统调用的函数;操作系统总是将main函数作为应用程序的开始;操作系统将main函数的返回值作为程序的退出状态;#include <stdio.h>int main(){ printf("I'm A!\n"); re..

2022-04-20 19:04:51 206

原创 C语言进阶第32式:数组指针和指针数组分析

数组指针和指针数组分析

2022-04-20 15:39:34 121

原创 C语言进阶第31式:字符串典型问题分析

下面的程序输出什么?为什么?#include <stdio.h>int main(){ char buf[10] = {0}; char src[] = "hello %s"; snprintf(buf, sizeof(buf), src); printf("buf = %s\n", buf); return 0;}分析snprintf 函数本身是可变参数函数,原型如下:int snprintf(

2022-04-20 15:25:58 87

原创 C语言进阶第30式:C语言中的字符串

字符串的概念字符数组与字符串...

2022-04-20 11:04:04 410

原创 C语言进阶第28式:指针和数组分析(下)

数组名可以当作常量指针使用,那么指针是否也可以当作数组名来使用呢?数组的访问方式以下标的形式访问数组中的元素int main(){ int a[5]= {0}; a[1]= 3; a[2] = 5; return 0;}以指针的形式访问数组中的元素int main(){ int a[5]= {0}; *(a+ 1)= 3; *(a+ 2)= 5; return 0;}指针以固定增量在数组中移动

2022-04-19 23:16:35 100

原创 C语言进阶第28式:指针和数组分析(上)

数组的本质数组是一段连续的内存空间;数组的空间大小为sizeof(array_type)* array_size;数组名可看做指向数组第一个元素的常量指针;示例1如下:#include <stdio.h>int main(){ int a[5] = {0}; int* p = NULL; printf("a = 0x%X\n", (unsigned int)(a)); printf("a +...

2022-04-19 14:32:14 100

原创 C语言进阶第27式:数组的本质分析

数组是相同类型的变量的有序集合;数组示意图:数组包含5个int类型的数据数组的大小数组在一片连续的内存空间中存储元素;数组元素的个数可以显示或隐式指定;示例1如下:int a[5] = {1,2};int b[] = {1,2};示例1如下:#include <stdio.h>int main(){ int a[5] = {1, 2}; int b[] = {1, 2}; printf("a[2] = %d\n

2022-04-19 14:11:17 136

原创 C语言进阶第26式:指针的本质分析

程序中的变量只是一段存储空间的别名,那么是不是必须通过这个别名才能使用这段存储空间?* 号的意义在指针声明时,*号表示所声明的变量为指针在指针使用时,*号表示取指针所指向的内存空间中的值示例1如下:#include <stdio.h>int main(){ int i = 0; int* pI; char* pC; float* pF; pI = &amp...

2022-04-19 13:57:30 159

原创 C语言进阶第25式:# 和 ## 操作符使用分析

# 和 ## 操作符使用分析

2022-04-19 10:04:45 120

原创 C语言进阶第24式:#pragma 使用分析

#pragma的作用和用法

2022-04-18 11:34:15 197

原创 C语言进阶第23式:#error和#line的使用分析

#error和#line的使用分析

2022-04-16 20:00:16 509

原创 C语言进阶第22式:条件编译使用分析

条件编译的本质与意义

2022-04-16 19:30:33 353

原创 C语言进阶第21式:宏定义与使用分析

C语言中的宏定义

2022-04-16 18:48:03 466

原创 LabVIEW开发实战:Labview简介

1、什么是Labview2、数据流的概念3、选择LabVIEW的原因4、LabVIEW 学习捷径5、 LabVIEW的工作环境6、 LabVIEW自带编程示例7、起源与发展历程8、小结1、什么是LabviewLabVIEW (Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序...

2022-03-21 01:49:25 45624 4

原创 CAN缩写

PG, Parameter Group 参数组PGN, Parameter Group Number 参数组编号PDU, Protocol Data Unit 协议数据单元PF, Protocol Data Unit Format 协议数据单元格式PS, PDU Specific 特定协议数据单元DF, Data File 数据域DP, Data Page 数据页DA, Destination Address 目标地址DLC, 数据长度码...

2021-11-10 16:02:57 990

原创 CAN总线的特点及J1939协议通信原理、内容和应用

众多国际知名汽车公司早在20世纪80年代就积极致力于汽车网络技术的研究及应用。迄今已有多种网络标准,如专门用于货车和客车上的SAE的J1939、德国大众的ABUS、博世的CAN、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET等。 在我国的轿车中已基本具有电子控制和网络功能,排放和其他指标达到了一定的要求。但货车和客车在这方面却远未能满足排放法规的要求。计划到2006年,北京地区的货车和客车的排放要满足欧Ⅲ标准。因此,为了满足日益严格的排放法规,载货车和客车中也必须引入计算...

2021-11-10 15:55:46 12674

原创 用C语言实例描述程序中的内聚和耦合

编程时,我们讲究的是高内聚低耦合,在协同开发、代码移植、维护等环节都起到很重要的作用。一、原理篇而低耦合,是指模块之间尽可能的使其独立存在,模块之间不产生联系不可能,但模块与模块之间的接口应该尽量少而简单。这样,高内聚从整个程序中每一个模块的内部特征角度,低耦合从程序中各个模块之间的关联关系角度,对我们的设计提出了要求。程序设计和软件工程发展过程中产生的很多技术、设计原则,都可以从内聚和耦合的角度进行解读。作为C语言程序设计的初学者,结合当前对于函数的理解可达到的程度,我们探讨一下如何做到高内聚

2021-10-14 10:53:54 306

原创 嵌入式工程师的100本专业书籍

001《大话数据结构》002《鸟哥的 linux 私房菜》003《疯狂 android 讲义》004《第一行代码》005《linux 内核设计与实现》006《驱动设计开发》007《linux 内核解密》008《unix 环境高级编程》009《linux 内核设计与实现》010《essential C++》011《嵌入式 linux》012《linux 设备驱动》013《c 语言深度解剖》014《linux 下的 c编程》015《C Primer Plu

2021-10-14 10:28:01 1104

原创 常见总线:IIC、IIS、SPI、UART、JTAG、CAN、SDIO、GPIO

IIC IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线用两条线(SDA和SCL)在总线和装置之间传递信息,在微控制器和外部设备之间进行串行通讯或在主设备和从设备之间的双向数据传送。I2C是OD输出的,大部分I2C都是2线的(时钟和数据),一般用来传输控制信号。IIS I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。I2S有...

2021-10-14 10:00:32 1732

原创 C语言进阶第20式:链接过程简介

链接器的意义静态链接动态链接

2021-08-22 22:23:47 215

原创 C语言进阶第19式:编译过程简介

什么是编译?编译过程分为哪几个过程?

2021-08-22 22:11:50 115

原创 C语言进阶第18式:三目运算符和逗号表达式

三目运算符和逗号表达式的使用和意义?

2021-08-22 20:31:04 424

TB T 3115-2005机车车辆动力学性能台架试验方法.pdf

TB T 3115-2005机车车辆动力学性能台架试验方法.pdf

2023-10-19

Excel基础操作素材

Excel基础操作素材

2022-04-25

CAN Vector ECU 测试解决方案

CAN Vector ECU 测试解决方案

2022-02-16

SAE_J_2411__车用_CAN_单线网络.pdf

单线CAN总线网络在车辆上的应用

2021-11-08

CAN总线入门-瑞萨CAN.rar

1、概要 2、使用注意事项 3、CAN是什么? 4、CAN的特点 5、错误 6、CAN协议的基本概念 7、CAN协议及标准规格 8、CAN协议

2021-11-08

CAPL编程以及其他全英资料.rar

LoggingFormat_ASCII LoggingFormat_BLF STLportLicense_files CAPL编程 CANoe_LabVIEW SCOPE_Manual

2021-11-05

CAPL编程Vector产品培训.rar

CAPL浏览器——概述 CAPL程序的编译 数据库的访问 导入/导出ASCII文件 CAPL编程概述 CAPL程序的应用 CAPL程序对于事件的响应 CAPL的事件类型 CAPL 基本语法 消息过程 键盘过程 时间过程 环境变量过程 CAPL中的数据类型 消息的申明 CAPL程序的组成 CAPL 程序执行顺序 关键字——this CAPL 指令块、CAPL 中输出文本 传输信号 周期性消息发送的CAPL示例 环境变量过程的示例

2021-11-04

STM32_CAN接收过滤和发送分析.rar

STM32 CAN接收过滤和发送图文详解

2021-11-04

道路车辆功能安全word版(中英文).rar

道路车辆功能安全word版: 第1部分:术语 第2部分:功能安全管理 第3部分:概念阶段 第4部分:产品开发:系统层面 第5部分:产品开发:硬件层面 第6部分:产品开发:软件层面 第7部分:生产和运行 第8部分:支持过程 第9部分:以汽车安全完整性等级为导向和以安全为导向的分析 第10部分:指南

2021-11-04

ISO+14229-1+统一诊断服务.ppt

ISO+14229-1+统一诊断服务

2021-08-14

HCS12_Stationery.ppt

HCS12_Stationery

2021-07-18

HCS12_Automotive_full_jan2004.ppt

HCS12_Automotive_full_jan2004

2021-07-18

深入了解HCS08的内部时钟源(ICS)模块.pdf

深入了解HCS08的内部时钟源(ICS)模块

2021-07-18

AN3275-S12 Bootloader.pdf

AN3275-S12 Bootloader

2021-07-18

CAN_Presentation.ppt

CAN_Presentation

2021-07-18

AN2727-S12硬件设计参考.pdf

AN2727-S12硬件设计参考

2021-07-18

飞思卡尔单片机AD应用.ppt

AD应用

2021-07-18

16位汽车级控制器一览表.pdf

16位汽车级控制器一览表

2021-07-18

04- HCS12 配置.ppt

HCS12 配置

2021-07-18

009 PWM Module Rev 1.5.ppt

009 PWM Module Rev 1.5

2021-07-18

016- Debug Module.ppt

016- Debug Module

2021-07-18

015- BREAK MODULE.ppt

015- BREAK MODULE

2021-07-18

014 - FLASH & EEPROM.ppt

014 - FLASH & EEPROM

2021-07-18

013 - IIC.ppt

013 - IIC

2021-07-18

012- msCAN.ppt

012- msCAN

2021-07-18

011- BDLC.ppt

011- BDLC

2021-07-18

010- A to D Converter.ppt

010- A to D Converter

2021-07-18

008-Timer Module(ECT).ppt

008-Timer Module(ECT)

2021-07-18

007- SCI & SPI.ppt

007- SCI & SPI

2021-07-18

006- Port Integration Module.ppt

006- Port Integration Module

2021-07-18

005 - Resets & Interrupts.ppt

005 - Resets & Interrupts

2021-07-18

004- HCS12 Configuration.ppt

004- HCS12 Configuration

2021-07-18

003-HCS12 Instruction Set.ppt

003-HCS12 Instruction Set

2021-07-18

002-HCS12 Addressing Modes.ppt

002-HCS12 Addressing Modes

2021-07-18

001- HCS12_Overview.ppt

001- HCS12_Overview

2021-07-18

劳特巴赫或PE刷程序.docx

劳特巴赫或PE刷程序

2021-07-18

电动汽车动力电池管理及成组.pdf

电动汽车动力电池管理及成组

2021-07-14

NEW_体系架构-从OSEK到Autosar 46.pdf

NEW_体系架构-从OSEK到Autosar 46

2021-07-14

06230700_MA-PSE9000-3U-CN.pdf

操作说明书PSE 9000 3U高效直流电源

2021-07-13

06230350_MA-PSI9000-3U-TFT-CN.pdf

操作说明书PSI 9000 3U高效直流电源

2021-07-13

空空如也

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

TA关注的人

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