- 博客(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
17389
转载 C语言中的堆和栈
一.前言:C语言程序经过编译连接后形成编译、连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成,如下图所示:1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。其操作方式类似于数据结构中的栈。2.堆区(heap):一般由程序员分配释放,若程序员不释放,则可能会引起内存泄漏。...
2018-11-26 15:46:27
5386
1
原创 嵌入式里的中断解读以及中断服务函数
不要年纪轻轻,就觉得自己进入了人生低谷,其实,后来你会发现你还有很大的下降空间。从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。一、硬中断和软中断(1) 硬中断由与系统相连的外设(比...
2018-11-26 15:27:16
7711
转载 100条经典C语言笔试题目
题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C 语言面试宝典(林锐《高质量编程第三版》)。说明:1、部分C 语言面试题中可能会参杂部分和C++ 相关的知识,为了保持题目的灵活性故保留,但选题最终还是会以C 语言题目为主体;2、以上公司的面试题目已成为国内中小型企业公司出题模板;3、由于本人的能力有限加上时间仓促,本课件肯定存在不足之处,恳请各位同学批...
2018-11-26 15:06:38
938
转载 C语言文件操作函数大全
C语言文件操作函数大全clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include<stdio.h>定义函数 void clearerr(FILE * stream);函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。返回值 fclose(关闭文件)相关函数 close,fflush,fopen,setbuf表...
2018-11-26 09:14:50
154
原创 C语言关键字struct,以及结构体大小
不要年纪轻轻,就觉得自己进入了人生低谷,其实,后来你会发现你还有很大的下降空间。一、struct1、在网络协议、通信控制、嵌入式系统、驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数据组合起来的一个整体,其表现形式是一个结构体。另外平时在编写函数时参数尽量不要多于4个,否则用起来麻烦还容易出错,效率会降低(具体与CPU有关,何况ARM的芯片对于参数超过4个的...
2018-11-25 16:48:47
276
原创 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
10013
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
4126
1
原创 C语言中的实参和形参
个人理解,如有错误还请指正实参:传递给被调用函数的值;形参:定义函数名和函数体时需要用的参数,目的是用来接收调用该函数时传递的参数1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。...
2018-11-24 21:57:46
6132
原创 C语言中,指针,字符串,数组,函数指针的说明
最近很糟心,在面试,被打击的也很大,一直在用C语言,然后有些东西,用起来突然就觉得模糊了,真的烦!作为刚毕业不久的我,真的糟糕透了。我曾以为年纪轻轻,就到了人生的低谷,后来才发现我的下降空间好很大!一、C语言中,为什么字符串可以赋值给字符指针变量char *p,a='5';p=&a; //显然是正确的,p="abcd"; ...
2018-11-24 17:16:02
448
原创 STM32的指令周期
在keil中编程时,写了一行代码,然后就想知道,执行这句C代码需要多长时间。时钟周期在这就不解释了,频率的倒数。指令周期,个人理解就是cpu执行一条汇编指令所需要的时间。我们知道cm3使用的三级流水线,那么到底一条指令的执行需要多少个时钟周期。下面通过keil软件仿真,来计算一个指令所需的时钟周期。 使用STM32F103RC,。配置其主时钟HCLK为72mhz测试代码如下:...
2018-09-18 16:25:59
29762
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
10734
1
原创 有关用STM32芯片自带的ADC测量电池电压,然后根据放电曲线得到电池容量的问题
首先,这种方式测量我认为肯定是不能正确得到电池剩余容量的。STM32的ADC参考电压,我们一般设置为3.3V,也就是说ADC采集到的外部电压最高也是3.3V,一般我们使用的电池可能要高于3.3v,这就需要对电池的电压进行降压处理。这就存在一个降压因子,也就是采集到的电压和电池的实际放电电压存在某种比例关系,只要得到这个比例因子的值,那么问题就解决了。可是,这个比例因子,得到不容易啊。对电池的降...
2018-07-27 11:12:28
13003
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
9253
原创 select
poll管理多个描述符进行轮询操作(查询文件描述符,如果有指定的时间发生立刻返回),根据描述符的状态进行处理。一般通过返回值来确实指定的事件是否发生。没有文件描述符多少的限定。Poll函数退出后,struct pollfd变量的fd,events,值被清零,revents变量包含了监测结果阻塞、非阻塞#include int poll(struct pollfd
2017-11-30 21:01:42
189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人