07 2017 档案
摘要:本章参考资料:《STM32F4xx 中文参考手册》ADC章节。 1 、ADC 简介 STM32F429IGT6 有 3 个 ADC,每个 ADC有 12 位、10 位、8 位和 6 位可选,每个ADC有 16 个外部通道。另外还有两个内部 ADC源和 V BAT 通道挂在 ADC1 上。ADC具有独
阅读全文
摘要:目录 —— C语言数据结构与算法分析 第一课——进阶 第二课:什么是数据结构的数据 第三课 - 程序的灵魂,算法 第四课 — 审判程序的灵魂 第五、六课 — 线性表本质及相关操作 第七课 — 线性表的顺序存储结构 第八课 — 线性表的链式存储结构 第九课 — 静态链表 第十课 — 循环链表,约瑟夫环
阅读全文
摘要:目录 —— STM32裸机 1、SPI通信协议 2、用SPI协议与外设进行通信(W25Q128) 3、DMA(Data Memory Access)直接存储器访问 4、常用存储器介绍 5、TIM — 定时器 6、FMC — 扩展外部SDRAM 7、LTDC/DMA2D——液晶显示 8、LTDC/DM
阅读全文
摘要:以下内容(6-25章节)转载自安富莱电子:http://forum.armfly.com/forum.php 目录 1、FreeRTOS多任务(LED + BEEP) 2、FreeRTOS——使用任务参数创建任务 3、FreeRTOS——利用阻塞态实现延迟 4、FreeRTOS——空闲任务与钩子函数
阅读全文
摘要:1、WWDG 简介 窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。如果在递减计数器达到窗口寄存器值之前刷新控制寄存器中的 7 位递
阅读全文
摘要:以下内容转载自安富莱电子:http://forum.armfly.com/forum.php 1、 调 度 锁 调度锁就是 RTOS 提供的调度器开关函数,如果某个任务调用了调度锁开关函数,处于调度锁开和调度锁关之间的代码在执行期间是不会被高优先级的任务抢占的,即任务调度被禁止。这一点要跟临界段的作
阅读全文
摘要:章参考资料:《STM32F4XX 中文参考手册》IWDG 章节。 1、IWDG简介: STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬,本章我们主要分析独立看门狗的功能框图和它的应用。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器
阅读全文
摘要:如何使用 LTDC 及 DMA2D 外设控制型号为“STD800480”的 5 寸液晶屏,该液晶屏的分辨率为 800x480,支持 RGB888 格式 液晶排线接口: 使用5寸屏,通过屏幕上的排针接入到实验板的液晶排母接口,与STM32芯片的引脚相连。连接图如下: //1.初始化LCD驱动的引脚//
阅读全文
摘要:参考资料:《STM32F4xx 参考手册 2》、《STM32F4xx 规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。 关于 SDRAM 存储器,请参考前面的“常用存储器介绍”,实验中 SDRAM 芯片的具体参数,请参考其规格书《IS42-45S1640
阅读全文
摘要:以下内容转载自安富莱电子:http://forum.armfly.com/forum.php 1、临界段 代码的临界段也称为临界区,一旦这部分代码开始执行,则不允许任何中断打断。为确保临界段代码的执行不被中断,在进入临界段之前须关中断,而临界段代码执行完毕后,要立即开中断。 FreeRTOS 源码中
阅读全文
摘要:以下内容转载自安富莱电子:http://forum.armfly.com/forum.php FreeRTOS 操作系统支持的任务调度方式:抢占式,时间片和合作式。 这部分算是 FreeRTOS 操作系统的核心了。 1、关 于 合 作 式 调 度 器 的 特 别 说 明 关于合作式调度器,官方进行了
阅读全文
摘要:以下内容转载自安富莱电子:http://forum.armfly.com/forum.php 任 务 优 先 级 说 明 下面对 FreeRTOS 优先级相关的几个重要知识点进行下说明,这些知识点在以后的使用中务必要掌握牢固。 2 、任 务 优 先 级 分 配 方 案 对于初学者,有时候会纠结任务优
阅读全文
摘要:以下内容转载自安富莱电子:http://forum.armfly.com/forum.php 1 、NVIC 基 础 知 识 NVIC 的全称是 Nested vectored interrupt controller,即嵌套向量中断控制器。 对于 M3 和 M4 内核的 MCU,每个中断的优先级都
阅读全文
摘要:以下内容转载自安富莱电子:http://forum.armfly.com/forum.php 给任务分配多大的栈空间,一直是初学者比较头疼的问题, 下面就主要讲解如何解决此问题。 1 任 务 栈 大 小 的 确 定 在基于 RTOS 的应用设计中,每个任务都需要自己的栈空间,应用不同,每个任务需要的
阅读全文
摘要:单链表完美解决了顺序表的问题 ! 还有其它改进顺序表的方法吗? 牛人小C C 。 出场 。。。顺序表有优势 , 单链表也同样有缺点 单链表的相对劣势 单链表的实现严重依赖指针 ! 数据元素中必须包含一个额外的指针域 ! 没有指针的程序设计语言无法实现! 顺序表的改进 静态链表的逻辑结构 静态链表相关
阅读全文
摘要:以下内容转载自安富莱电子:http://forum.armfly.com/forum.php 了解任务管理的目的就是让初学者从裸机的,单任务编程过渡到带 OS 的,多任务编程上来。搞清楚了这一点,那么 FreeRTOS 学习就算入门了。 1 单 任 务 系统 学习多任务系统之前,我们先来回顾下单任务
阅读全文
摘要:上节课学了线性表的顺序存储结构,可是顺序表的最大问题是插入和删除都需要移动大量的元素! 如何解决呢? 讨论: 这就是我们链式存储结构的思想。 链式存储定义:为了表示每个数据元素与其直接后继元素之间的逻辑关系 , 每个元素除了存储本身的信息外 , 还需要存储指示其直接后继的信息。 链式存储逻辑结构:n
阅读全文
摘要:线性表的顺序存储结构(重点) 顺序存储的定义:线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。 首先创建一个.h文件,把所有的函数的api函数写出来。 具体如下:首先创建线性表,销毁线性表,清除线性表,线性表的深度,线性表的容量,线性表的插入,获取线性表的某一个数,删除
阅读全文
摘要:此图为线性表 A:友谊是平等的。不能用线性表表示。 B:一个上级可以管多个下级。不能用线性表表示。 C:一个人可以占多个位置(帮人占座),但帮占的位置不满足线性表表示关系。 D:最前面只有一个后驱,最后面只有一个前驱,数据有限,中间的有一个前驱和一个后驱,能用线性表表示。 小结
阅读全文
摘要:C函数一般都有一个返回值。这就是由函数计算并返回给调用程序的值。 printf()函数也有一个返回值,它返回所打印的字符的数目。如果有输出错误,那么printf()会返回一个负数(printf( ) 的一些老版本会有不同的返回值)。 printf()的返回值是其打印输出用途的附带功能,通常很少被用到
阅读全文
摘要:一下内容转载自安富莱电子:http://forum.armfly.com/forum.php本章节为大家介绍 FreeRTOS 的调试方法,这里的调试方法主要是教会大家如何获取任务的执行情况,通过获取的任务信息,可以进一步的配置和优化工程,这种方法非常实用,建议初学者必须掌握。 串口打印调试说明很多
阅读全文
摘要:定时器(Timer)最基本的功能就是定时了,比如定时发送 USART数据、定时采集 AD数据等等。如果把定时器与 GPIO 结合起来使用的话可以实现非常丰富的功能,可以测量输入信号的脉冲宽度,可以产生输出波形。定时器产生 PWM 控制电机状态是工业控制普遍方法,这方面知识非常有必要深入了解。 STM
阅读全文
摘要:当类型不匹配的时候,往往计算机输出的值和我们的预估值不一样。 下面我们以计算机存储数据的方面去剖析为什么出来的结果和预估的值不一样。 我们看如下代码: 在gcc上的运行结果为: 从第一行看到,%hd 和%hu产生336作为变量num的输出,毫无疑问。 然而,mnum的%u(无符号)版本的输出结果则为
阅读全文
摘要:算法效率的度量 * 事后统计法 比较不同算法对同一组输入数据的运行处理时间 * 缺陷 为了获得不同算法的运行时间必须编写相应程序 运行时间严重依赖硬件以及运行时的环境因素 算法的测试数据的选取相当困难 事后统计法虽然直观 , 但是实施困难且缺陷多 ,一般不予考虑* 事前分析估算 依据统计的方法对算法
阅读全文
摘要:程序是否越短越好? 是否别人看不懂就证明自己很厉害? 程序效率越高越好,并不是越短越好。在某些场合下,我们需要写出别人看不懂的算法最好,但是在一个团队开发中,算法可读性应该尽可能高。 数据结构与算法 算法的定义: 算法的特性: 算法设计的准则:
阅读全文
摘要:存储器是计算机中非常重要的组成部分,存储器是用来存储程序代码和数据的部件,有了存储器,计算机才具有记忆功能。电脑CPU是没有记忆功能的,他需要数据的时候都是先从存储器中读出,再进行逻辑运算,处理。处理完后再把数据存储到存储器中,下次再调用。 存储器种类: 存储器按其存储介质特性主要分为“易失性存储器
阅读全文
摘要:常用的信号发生器。(下图所有仿真都源自Multisim13.0) 设置:频率(Frequency)为100HZ,振幅(Amplitude)为1V。直流偏置电压(Offset)为0V。 直流偏置电压(Offset):在交流电压的基础上,叠加直流偏置分量,即把整个交流电压向正(或者负)方向平移一定的距离
阅读全文
摘要:DMA(Data Memory Access)直接存储器访问 DMA是不经过CPU控制,直接把数据从一个设备传给另一个设备。 DMA有两个控制器,DMA1,和DMA2。 DMA1支持:外设到存储器,存储器到外设 DMA2:外设到存储器,存储器到外设,存储器到存储器。 每个数据流都与一个 DMA 请求
阅读全文
摘要:数据结构起源 ~ 计算机从解决数值计算问题到解决生活中的问题~ 现实生活中的问题涉及不同个体间的复杂联系~ 需要在计算机程序中描述生活中个体间的联系 数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系 关键概念数据 – 程序的操作对象 , 用于描述客观事物数据的特点 : 可以输入到计算
阅读全文
摘要:理解程序的本质 程序是为了实际的问题而存在从本质上而言,程序是解决问题的步骤描述 一小步的进阶 首先理解实际问题! 确认问题类型– 如:数值计算,求最小值个数 确认求解的步骤– 如:打开文件,读数据,关闭文件,计算和问题:如何判断求解步骤的好坏,如下列所示: 运行结果如图: 从结果看出,三个函
阅读全文
摘要:SPI明明是MISO,主机作为输入,为什么配置的时候配置的是输出模式? 从参考手册中可以看到,当我们配置为复用功能输出的时候是同时具有输入功能的,故只用配置成输出就行。 使用SPI协议与外设W25Q128进行通信: 1.初始化GPIO 2.配置SPI工作模式 3.接收以及发送数据(数据要先发送,再接
阅读全文
摘要:不需要亲自把空字符插入name数组中。scanf在读取输入时会替你完成这项任务。也无须在字符串常量中包含一个空字符。 当输入guang yang 的时候的运行结果如下: scanf() 只读取了guang yang的名字guang。scanf() 开始读取输入以后,会在遇到的第一个空白字符空格(bl
阅读全文
摘要:~ SPI和串口都是一种全双工的通信方式:支持同时收-同时发 ~ SPI有MOSI(Master Output,Slave Input)和MISO(Master Input,Slave Output); ~ 串口有TX和RX; ~ IIC只有一根数据线; ~ IIC是一种半双工的通信方式:在某一时刻
阅读全文
摘要:vTaskPrioritySet() API 函数可以用于在调度器启动后改变任何任务的优先级。 函数原型: void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority ); uxTaskPriorit
阅读全文
摘要:当创建的任务大部分时间都处于阻塞态。这种状态下所有的任务都不可运行,所以也不能被调度器选中。 但处理器总是需要代码来执行——所以至少要有一个任务处于运行态。为了保证这一点,当调用 vTaskStartScheduler()时,调度器会自动创建一个空闲任务。空闲任务是一个非常短小的循环——和最早的示例
阅读全文

浙公网安备 33010602011771号