- 博客(16)
- 收藏
- 关注
原创 EXIT外部中断
STM32F4的每个IO都可以作为外部中断输入。STM32F4的中断控制器支持22个外部中断/事件请求:EXTI线0~15:对应外部IO口的输入中断。EXTI线16:连接到PVD输出。EXTI线17:连接到RTC闹钟事件。EXTI线18:连接到USB OTG FS唤醒事件。EXTI线19:连接到以太网唤醒事件。EXTI线20:连接到USB OTG HS(在FS中配置)唤...
2018-07-26 19:01:04
1938
1
原创 定时器基础
定时器功能 :定时、输出比较、输入捕获、互补输出定时器分类 :基本定时器、通用定时器、高级定时器定时器资源 :429有2个高级定时器、10个通用定时器、2个基本定时器APB1 定时器有 TIM2, TIM3 ,TIM4, TIM5, TIM6, TIM7, TIM12, TIM13,TIM14-90MAPB2 定时器有 TIM1, TIM8 ,TIM9, TI...
2018-07-25 14:11:00
1094
原创 USART和DMA
串口初始化:void bsp_InitUsart(void){ //2个结构体 IO和串口 GPIO_InitTypeDef GPIO_InitStructure;//IO初始化结构体 USART_InitTypeDef USART_InitStructure;//串口初始化结构体 NVIC_InitTypeDef NVIC_InitStructure;//中断初始化结构...
2018-07-25 09:55:22
2117
原创 时钟、GPIO、NVIC
*============================================================================= * Supported STM32F42xxx/43xxx devices *--------------------------------------------------------...
2018-07-20 15:08:52
4345
原创 计算机编程技术之堆排序的分析与实现
计算机编程技术之堆排序的分析与实现排序就是将一系列无序的数据按某个关键字进行有序化。我们最常见的排序基本上都是将数字按递减或者递增关系进行排序。比较主流的排序方法有8种,分别是冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、二叉排序和计数排序。排序算法的不同,导致了各种方法的性能指标不同。排序的性能指标主要有算法的复杂性和稳定性。排序算法的稳定性是指在待排序的序列中,存在多个相同的元素...
2018-05-21 21:56:52
748
原创 系统编程
获取进程pid_t getpid()功能:获取该进程的进程号。函数返回值为进程号。getppid()用来获取该进程父进程的进程号。 启动进程pid_t fork()功能:创建子进程。同时会有两个返回值。在子进程中返回0,在父进程中返回子进程的pid。若错误返回-1。并在父子进程中都运行该fork()语句后面的代码。但我们可以用if (pid== 0) else if (pid >...
2018-03-16 16:02:26
143
原创 树
1、联合体与结构体联合体用途:使几个不同类型的变量共占一段内存(相互覆盖)。联合表示几个变量公用一个内存位置, 在不同的时间保存不同的数据类型和不同长度的变量。 当一个联合被说明时, 编译程序自动地产生一个变量, 其长度为联合中最大 的变量长度。共同体变量中起作用的成员是最后一次存放的成员,在存入新的成员后原有的成员失去了作用!结构体是一种构造数据类型用途:把不同类型的数据组合成一个整体-----...
2018-02-08 20:48:27
106
原创 队列、进程和排序问题
1、循环队列的长度我们把队列的这种头尾相接的顺序存储结构称为循环队列。当空队列时,front==rear,而当队列满时,还是front==rear,那么如何判断此时的队列究竟是空还是满呢?办法一:设置一个标志变量flag,当front==rear且flag=0时为队列空,当front==rear且flag=1时为队列满。办法二:当队列空时,条件就是front=rear,当队列满
2018-02-06 21:31:03
1470
原创 栈
1、中缀表达式转后缀表达式开始遍历若为数字,则加入后缀表达式若为运算符,则:a.若为 '(' ,入栈。b.若为 ')' ,则依次把栈中的的运算符加入后缀表达式中,直到出现’(’,从栈中删除'(' 。c.若为除括号外的其他运算符,当其优先级高于除'(' 以外的栈顶运算符时,直接入栈。否则从栈顶开始,依次出比当前处理的运算符优先级高和优先级相等的运算符,直到
2018-02-06 16:47:43
188
转载 计算机网络TCP/IP
1、TCP/IP的三次握手和四次挥手TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段
2018-02-02 15:05:25
321
原创 数据结构1
1、Sizeof和strlen的区别:1本质不同sizeof是运算符。Strlen是函数。 2处理的阶段不同Sizeof在编译时就已经完成了计算。Stelen是在运行时进行计算。 3、计算的内容不同sizeof可以计算一个字符串的长度也可以计算一个数据变量所占内存的大小。Strlen只能计算字符串的长度。 4、对\0的处理方式不同Si
2018-01-31 22:42:49
137
原创 指针、内存管理、预处理、结构体
1、#define和typedef的区别typedef是C语言语句,其功能是用户为已有数据类型取“别名”。关键字typedef在编译阶段有效,由于是在编译阶段,因此typedef有类型检查的功能。define则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机无脑的字符串替换,而不进行任何检查。Typedef用来定义类型的别名,这些类型不只包含内部类型(int,char等),
2018-01-29 22:31:34
161
原创 指针、数组、函数2
1、指针常量和常量指针的区别Const *p是常量指针。指针所指向的地址里的内容不能被改变。但指针可以指向别的地址。(我们可以改变它指向的地址,但是不能改变指向的地址的内容)* Const p是指针常量。可以理解为指针是常量。指针只能赋值一次(定义时除外),不能再修改。(我们可以改变它指向的地址的内容,但不能改变它指向的地址) 2、NULL和0的区别虽然可以比较NULL
2018-01-27 17:15:17
131
原创 数组、指针、函数1
1、 指针和数组的关系int a [10]={0, 1, 2, 3, 4, 5, 6, 7 ,8, 9} , v; v=a [0]; //也可写成:v=*a; v=a [3]; //也可写成:v=*(a+3); v=a [4]; //也可写成:v=*(a+4);
2018-01-25 20:43:11
139
原创 关于C语言数据类型的十个问题
在学习c的数据类型是,有很多疑惑和问题,在这里提一些问题并注上自己的理解和看法。1、什么是结构,怎么定义结构?通俗的讲就是打包封装,把一些有共同特征的变量封装在内部,并通过一定方法修改内部变量。定义结构变量的一般格式为: struct 结构名 { 类型 变量名; 类型 变量名;
2018-01-23 21:38:28
335
原创 Linus的几个重要命令介绍
文件处理命令:mkdir 用来创建子目录的,使用权是所有用户。用法为:mkdir 参数 目录名 mkdir -m 目录名 创建目录的同时设定权限。如mkdir -m 755 test mkdir -p 目录名 创建所需目录以及它的上层目录,若目录已存在,也不会报错。 如 mkdir-p c/d/f 就是在当前目录下创建c
2018-01-23 16:57:20
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人