STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。
上传时间: 2022-07-08
上传用户:
本文档介绍如何使用 GNU 语言工具来编写 16 位单片机 / 数字信号控制器应用程序代 码。内容安排如下: • 第 1 章 “编译器概述”——介绍编译器、开发工具和功能集。 • 第 2 章“通用 C 接口”——介绍可用于增强 MPLAB XC 编译器之间代码可移植性 的通用 C 接口。 • 第 3 章“操作指南”——列出了一些具体操作方面的问题和简要说明,以及指向手 册中相关章节的链接。 • 第 4 章“XC16 工具链和 MPLAB X IDE”——说明关于如何通过 MPLAB X IDE 设 置和使用编译器及相关工具的基础知识。 • 第 5 章 “编译器命令行驱动程序”——介绍如何从命令行中使用编译器。 • 第 6 章“与器件相关的特性”——介绍编译器头文件和寄存器定义文件,以及如何 用于 SFR。 • 第 7 章 “MPLAB XC16 和 ANSI C 之间的差别”——介绍编译器语法支持的 C 语 言与标准 ANSI-89 C 之间的差别。 • 第8章“支持的数据类型和变量”——介绍编译器的整型、浮点型和指针数据类型。第 9 章 “定点算术支持”——说明编译器中的定点算术支持。 • 第 10 章 “存储器分配和访问”——介绍编译器运行时模型,包括关于段、初始 化、存储模型、软件堆栈和更多方面的信息。 • 第 11 章 “操作符和语句”——介绍操作符和语句。 • 第 12 章 “寄存器使用”——说明如何访问和使用 SFR。 • 第 13 章 “函数”——详细介绍可用的函数。 • 第 14 章 “中断”——介绍如何使用中断。 • 第 15 章 “main、运行时启动和复位”——介绍 C 代码的重要元素。 • 第 16 章 “混合使用 C 代码和汇编代码”——提供关于编译器与 16 位汇编语言模 块配合使用的指导。 • 第 17 章 “库程序”——说明如何使用库。 • 第 18 章 “优化”——介绍优化选项。 • 第 19 章 “预处理”——详细介绍预处理操作。 • 第 20 章 “链接程序”——说明链接如何工作。
标签: mplab xc16 编译器
上传时间: 2022-07-16
上传用户:
物联网iot完整”的Paho MQTT C客户端库是用Linux和Windows编写的。它假设存在用于网络(套接字),线程和内存分配的Posix或Windows库。嵌入式库旨在具有以下特征:使用非常有限的资源 - 挑选所需的组件不依赖于任何特定的库进行网络,线程或内存管理ANSI标准C,最高可移植性,最低级别C和/或C ++中的可选更高层
上传时间: 2022-07-20
上传用户:
本压缩包上传的源程序使用C语言编写,可以进行二次开发,可移植性强!ADC(analog to digital converter)即模数转换器,它可以将模拟信号转换为数字信号。按照其转换原理主要分为逐次逼近型、双积分型、电压频率转换型三种。STM32F1 的 ADC 就是逐次逼近型的模拟数字转换器。STM32F103 系列一般都有 3 个 ADC,这些 ADC 可以独立使用,也可以使用双重/三重模式(提高采样率)。STM32F1 的 ADC 是 12 位逐次逼近型的模拟数字转换器。它具有多达 18 个复用通道,可测量来自 16 个外部源、2 个内部信号源。 这些通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。ADC 具有模拟看门狗特性,允许应用程序检测输入电压是否超出用户定义的阀值上限或者下限。
上传时间: 2022-07-25
上传用户:zhanglei193
<C++代码设计和重用>本书全面展示如何使用C++编写可重用的代码,从而提高程序员的开发效率。 全书分为12章。包括重用性基本概念、类设计、扩展性、效率、错误、冲突、兼容性。继承、移植性、程序库等和重用相关的诸多话题。每一章的最后,通过总结和练习帮助你巩固概念、加深理解,参考文献和相关资料为你指明了深入学习的方向。 本书适合有一定C++经验的程序员阅读,也可供以提高代码重用性为专门学习方向的读者参考。
上传时间: 2014-01-20
上传用户:D&L37
通用i2c通讯协议可直接应用在单片机开发中,移植性很好
上传时间: 2016-07-27
上传用户:三人用菜
通用i2c通讯协议针对24c02可直接应用在单片机开发中,移植性很好
上传时间: 2014-01-20
上传用户:sdq_123
随着嵌入式技术的不断发展,嵌入式芯片的不断革新,嵌入式操作系统也逐渐成为嵌人式系统中不可或缺的部分。嵌入式操作系统的运用不仅能够更有效、更合理的利用现有的CPU的资源,而且能够简化应用软件的设计,缩短应用的开发周期,保证系统的可靠性和实时性。本文主要研究基于STM32芯片的硬件平台,由于RAM资源的限制,只能使用占用资源少的小型操作系统,常见的主要有uC/os-Il eCos,FreeRTOS等,与uC/Os-1 eCcos等商业收费的操作系统不同,FreeRTOS操作系统是一个源码公开的免费实时操作系统,能够很好地移植于各种体系结构的微型处理器。1 FreeRTOS操作系统的体系结构作为一款轻量级操作系统,FreeRTOS提供了任务管理、时间管理、信号量、消息队列、内存管理、记录等功能,并且具有源码公开、可裁减、可移植、调度策略灵活的特点[1-2,。本文主要从任务调度机制、系统时间管理机制、内存分配机制、任务通信与同步机制介绍操作系统的体系结构,并针对时下流行的C/OS-1系统进行类
上传时间: 2022-06-20
上传用户:
OpencV是用来实现计算机视觉相关技术的开放源码工作库,是计算机视觉、图像处理、模式识别、计算机图形学、信号处理、视频监控、科学可视化等相关从业人员的好工具。本书介绍了大约200多个典型的技术问题,覆盖了基于OpenCV基础编程的主要内容,利用大量生动有趣的编程案例和编程技巧,从解决问题和答疑解惑入手,以因特网上最新资料为蓝本,深入浅出地说明了OpenCV中最典型和用途最广的程序设计方法。全书结构清晰、合理,范例实用、丰富,理论结合实践,即使读者只是略懂计算机视觉原理,也能人手对相关理论方法直接进行编码实现。 "基于OPENCV的计算机视觉技术实现"的图书目录…… 前言 第一章 使用OpenCV实现计算机视觉技术 1.1 计算机视觉技术 1.2 什么是OpenCV 1.3 基于OpenCV库的编程方法 本章小结 第二章 OpenCV的编程环境 2.1 OpenCV环境介绍 2.2 OpenCV的体系结构 2.3 OpenCV实例演示 本章小结 第三章 OpenCV编程风格 3.1 命名约定 3.2 结构 3.3 函数接口设计 3.4 函数实现 3.5 代码布局 3.6 移植性 3.7 文件操作 3.8 文档编写 本章小结 第四章 数据结构 4.1 基本数据结构 4.2 数组有关的操作 4.3 动态结构 本章小结 第五章 数据交互 5.1 绘图函数 5.2 文件存储 5.3 运行时类型信息和通用函数 5.4 错误处理函数 5.5 系统函数 本章小结 第六章 图像处理 6.1 边缘检测 6.2 直方图 6.3 Hough变换 6.4 几何变换 6.5 形态学 本章小结 第七章 结构与识别 7.1 轮廓处理函数 7.2 计算几何 7.3 平面划分 7.4 目标检测函数 7.5 生成与控制贝塞尔曲线 7.6 用OpenCV进行人脸检测 本章小结 第八章 图形界面(HighGUI) 8.1 读取和保存图像 8.2 OpenCV中的实用系统函数 本章小结 第九章 视频处理(CvCAM) 9.1 使用HighGUI对视频进行读写处理 9.2 CvCam对摄像头和视频流的使用 本章小结 第十章 OpenCV附加库第一部分 10.1 附加库介绍 10.2 形态学(morhing functions) 本章小结 第十一章 OpenCV附加库第二部分——隐马尔可夫模型 11.1 隐马尔可夫模型概述 11.2 隐马尔可夫模型中的基本结构与函数介绍 11.3 隐马尔可夫模型中的函数介绍 11.4 人脸识别工具 本章小结 第十二章 核心库综合例程 12.1 检测黑白格标定板内指定矩形区域内的角点 12.2 解线性标定方程组程序 本章小结 第十三章 运动与跟踪 13.1 图像统计的累积函数 13.2 运动模板函数 13.3 对象跟踪 13.4 光流 13.5 预估器 13.6 Kalman滤波器跟踪示例 13.7 用Snake方法检测可变形体的轮廓 13.8 运动目标跟踪与检测 本章小结 第十四章 立体视觉第一部分——照相机定标 14.1 坐标系介绍 14.2 透视投影矩阵的获得 14.3 摄像机参数的获取 14.4 径向畸变的校正 14.5 使用OpenCV及CVUT进行摄像机定标 14.6 OpenCV中的定标函数 14.7 CVUT介绍 本章小结 第十五章 立体视觉第二部分——三维重建 15.1 极线几何 15.2 特征点匹配 15.3 三维重建 15.4 OpenCV中相关函数介绍 本章小结 第十六章 立体视觉第三部分——三维重建算法 16.1 图像校正 16.2 已校正图像的快速三维重建 16.3 Birchfield算法 16.4 OpenCV中相关函数介绍 本章小结 第十七章 立体视觉第四部分——立体视觉实例 17.1 图像校正实例代码 17.2 基于窗口的稀疏点匹配及三维重建之一 17.3 基于窗口的稀疏点匹配及三维重建之二 17.4 Birchfield算法的OpenCV实现 本章小结 第十八章 常见问题解疑 18.1 安装与编译出错解决方法 18.2 OpenCV库基本技术问题 18.3 OpenCV在Linux下的相关问题 18.4 OpenCV库中的陷阱和bug
上传时间: 2013-07-18
上传用户:huyiming139
现场可编程门阵列(FPGA,Field Programmable Gate Array)是可编程逻辑器件的一种,它的出现是随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC,Application Specific Integrated Circuit).芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中。现在,FPGA已广泛地运用于通信领域、消费类电子和车用电子。 本文中涉及的I/O端口模块是FPGA中最主要的几个大模块之一,它的主要作用是提供封装引脚到CLB之间的接口,将外部信号引入FPGA内部进行逻辑功能的实现并把结果输出给外部电路,并且根据需要可以进行配置来支持多种不同的接口标准。FPGA允许使用者通过不同编程来配置实现各种逻辑功能,在IO端口中它可以通过选择配置方式来兼容不同信号标准的I/O缓冲器电路。总体而言,可选的I/O资源的特性包括:IO标准的选择、输出驱动能力的编程控制、摆率选择、输入延迟和维持时间控制等。 本文是关于FPGA中多标准兼容可编程输入输出电路(Input/Output Block)的设计和实现,该课题是成都华微电子系统有限公司FPGA大项目中的一子项,目的为在更新的工艺水平上设计出能够兼容单端标准的I/O电路模块;同时针对以前设计的I/O模块不支持双端标准的缺点,要求新的电路模块中扩展出双端标准的部分。文中以低压双端差分标准(LVDS)为代表构建双端标准收发转换电路,与单端标准比较,LVDS具有很多优点: (1)LVDS传输的信号摆幅小,从而功耗低,一般差分线上电流不超过4mA,负载阻抗为100Ω。这一特征使它适合做并行数据传输。 (2)LVDS信号摆幅小,从而使得该结构可以在2.5V的低电压下工作。 (3)LVDS输入单端信号电压可以从0V到2.4V变化,单端信号摆幅为400mV,这样允许输入共模电压从0.2V到2.2V范围内变化,也就是说LVDS允许收发两端地电势有±1V的落差。 本文采用0.18μm1.8V/3.3V混合工艺,辅助Xilinx公司FPGA开发软件ISE,设计完成了可以用于Virtex系列各低端型号FPGA的IOB结构,它有灵活的可配置性和出色的适应能力,能支持大量的I/O标准,其中包括单端标准,也包括双端标准如LVDS等。它具有适应性的优点、可选的特性和考虑到被文件描述的硬件结构特征,这些特点可以改进和简化系统级的设计,为最终的产品设计和生产打下基础。设计中对包括20种IO标准在内的各电器参数按照用户手册描述进行仿真验证,性能参数已达到预期标准。
上传时间: 2013-05-15
上传用户:shawvi