自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 TTL、RS232、RS485、CAN、IIC几种常见的通讯协议简介

一、TTL电平:全双工(逻辑1: 2.4V–5V   逻辑0: 0V–0.5V) 1、硬件框图如下,TTL用于两个MCU间通信 2、‘0’和‘1’表示  二、RS-232电平:全双工(逻辑1:-15V–5V  逻辑0:+3V–+15V)  1、硬件框图如下,TTL用于MCU与PC机之间通信 2、‘0’和‘1’表示  三、R...

2018-12-15 19:35:06 13557

转载 C语言中的堆和栈

一.前言:C语言程序经过编译连接后形成编译、连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成,如下图所示:1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。其操作方式类似于数据结构中的栈。2.堆区(heap):一般由程序员分配释放,若程序员不释放,则可能会引起内存泄漏。...

2018-11-26 15:46:27 5208 1

原创 嵌入式里的中断解读以及中断服务函数

不要年纪轻轻,就觉得自己进入了人生低谷,其实,后来你会发现你还有很大的下降空间。从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。一、硬中断和软中断(1) 硬中断由与系统相连的外设(比...

2018-11-26 15:27:16 7302

转载 100条经典C语言笔试题目

题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C 语言面试宝典(林锐《高质量编程第三版》)。说明:1、部分C 语言面试题中可能会参杂部分和C++ 相关的知识,为了保持题目的灵活性故保留,但选题最终还是会以C 语言题目为主体;2、以上公司的面试题目已成为国内中小型企业公司出题模板;3、由于本人的能力有限加上时间仓促,本课件肯定存在不足之处,恳请各位同学批...

2018-11-26 15:06:38 880

转载 C语言文件操作函数大全

C语言文件操作函数大全clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include<stdio.h>定义函数 void clearerr(FILE * stream);函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。返回值 fclose(关闭文件)相关函数 close,fflush,fopen,setbuf表...

2018-11-26 09:14:50 126

原创 C语言关键字struct,以及结构体大小

不要年纪轻轻,就觉得自己进入了人生低谷,其实,后来你会发现你还有很大的下降空间。一、struct1、在网络协议、通信控制、嵌入式系统、驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数据组合起来的一个整体,其表现形式是一个结构体。另外平时在编写函数时参数尽量不要多于4个,否则用起来麻烦还容易出错,效率会降低(具体与CPU有关,何况ARM的芯片对于参数超过4个的...

2018-11-25 16:48:47 219

原创 C语言中地址的强制转换

年纪轻轻,感觉自己就进入了人生的低谷,不要着急,后来你会发现,你还有很大的下降空间。struct Test{   int Num;//4   char *pcName;//4   short sDate;//2   char cha[2];//2   short sBa[4];//8}*p;假设p 的值为0x100000。如下表表达式的值分别为多少?   p + 0x1 = ...

2018-11-25 14:55:32 9384 2

原创 C语言中函数指针数组的初始化和使用

不比多说上一个代码,就懂了!代码一:#include <stdio.h>int func(int i){    printf("%d\n",i);    return i*i;}int main(){    int i = 8;    int (*s[10])(int);//定义    s[1] = func;//赋值    printf("m...

2018-11-24 22:24:33 3949 1

原创 C语言中的实参和形参

个人理解,如有错误还请指正实参:传递给被调用函数的值;形参:定义函数名和函数体时需要用的参数,目的是用来接收调用该函数时传递的参数1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。...

2018-11-24 21:57:46 5964

原创 C语言中,指针,字符串,数组,函数指针的说明

最近很糟心,在面试,被打击的也很大,一直在用C语言,然后有些东西,用起来突然就觉得模糊了,真的烦!作为刚毕业不久的我,真的糟糕透了。我曾以为年纪轻轻,就到了人生的低谷,后来才发现我的下降空间好很大!一、C语言中,为什么字符串可以赋值给字符指针变量char *p,a='5';p=&a;                     //显然是正确的,p="abcd";         ...

2018-11-24 17:16:02 370

原创 STM32的指令周期

在keil中编程时,写了一行代码,然后就想知道,执行这句C代码需要多长时间。时钟周期在这就不解释了,频率的倒数。指令周期,个人理解就是cpu执行一条汇编指令所需要的时间。我们知道cm3使用的三级流水线,那么到底一条指令的执行需要多少个时钟周期。下面通过keil软件仿真,来计算一个指令所需的时钟周期。 使用STM32F103RC,。配置其主时钟HCLK为72mhz测试代码如下:...

2018-09-18 16:25:59 27835 6

转载 关于软件模拟PWM

Arduino软件模拟PWM以及提高软PWM效率什么是PWMPWM即Pulse Wavelength Modulation脉宽调制波,通过调整输出信号占空比,从而达到改变输出平均电压的目的。相信Arduino的PWM大家都不陌生,在Arduino Duemilanove 2009中,有6个8位精度PWM引脚,分别是3, 5, 6, 9, 10, 11脚。我们可以使用analogWrite()...

2018-08-22 14:03:49 9968 1

原创 有关用STM32芯片自带的ADC测量电池电压,然后根据放电曲线得到电池容量的问题

首先,这种方式测量我认为肯定是不能正确得到电池剩余容量的。STM32的ADC参考电压,我们一般设置为3.3V,也就是说ADC采集到的外部电压最高也是3.3V,一般我们使用的电池可能要高于3.3v,这就需要对电池的电压进行降压处理。这就存在一个降压因子,也就是采集到的电压和电池的实际放电电压存在某种比例关系,只要得到这个比例因子的值,那么问题就解决了。可是,这个比例因子,得到不容易啊。对电池的降...

2018-07-27 11:12:28 12610 2

原创 STM32的CubeMX关于串口中断接

作为刚工作不久的小白,刚接触STM32的HAL库,工作中使用到了,就记录下自己遇到的问题,希望看到的大佬多多指教。1、关于串口的初始化函数:    MX_USART2_UART_Init()---波特率、奇偶校验等配置            HAL_UART_Init()---会将 huart->RxState = HAL_UART_STATE_READY;    HAL_U...

2018-07-15 16:23:03 9000

原创 select

poll管理多个描述符进行轮询操作(查询文件描述符,如果有指定的时间发生立刻返回),根据描述符的状态进行处理。一般通过返回值来确实指定的事件是否发生。没有文件描述符多少的限定。Poll函数退出后,struct pollfd变量的fd,events,值被清零,revents变量包含了监测结果阻塞、非阻塞#include int poll(struct pollfd

2017-11-30 21:01:42 159

空空如也

空空如也

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

TA关注的人

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