开发用到的具体芯片是stm32L011F3 stm32L0总体特性,定位: 可见容量是比较少的,功耗很低,adc12位,7种低功耗模式 jlink和sdk的引脚关系图: HAL的库框图 官方给出的HAL库的包含结构:…
对于我这种以前只接触过51和AVR单片机编程的小菜来说,现在开始学习STM32的编程,对于函数的功能以及C语言的语法都还好理解,难的是它提供的那一套硬件抽象层(HAL)驱动是怎么和其他的东东搭配在一起组成一个又一个的工程. 首先上两张从ST官方提供的HAL固件库文档截图 从这两张图的话,能对它的构架看出个一二,下面稍稍具体一点分析 HAL固件库编程,它的文件组织大致分三个部分 - HAL驱动 - CMSIS驱动 - 用户编写程序 而假如你使用的是ST官网的开发板,那么你还有一套现成的驱动可供使用…
上章回顾 数组和指针相同与不同 通过指针访问数组和通过数组访问指针 指针在什么时候可以加减运算 函数指针的申明和调用 函数数组和数组函数 git@github.com:Kevin-Dfg/Data-Structures-and-Algorithm-Analysis-in-C.gitgit@github.com:Kevin-Dfg/Data-Structures-and-Algorithm-Analysis-in-C.git 附录二 附录二 C语言标准库 C语言标准库 git@github.com…
(十二)boost库之多线程高级特性 很多时候,线程不仅仅是执行一些耗时操作,可能我们还需要得到线程的返回值,一般的处理方法就是定义一个全局状态变量,不断轮训状态,就如我目前维护的一个项目,全局变量定义了N中状态,看的让人抓狂.该项目的大体逻辑是这样的,启动K个线程,当线程执行到某一个点时,进行轮训,判断是否所有线程都执行到该点,单独开启了一个线程用于轮训所有线程是否结束,待所有线程结束后会获取数据,生成一个文件,另外还有一个线程就在轮训文件是否生成,然后读取文件进行下一步操作.各种的轮训,显得…
(二)boost库之字符串格式化 程序中经常需要用到字符串格式化,就个人而言还是比较倾向于C格式的输出,如果只是打印日志,printf就够了,如果到生成字符串,获取你可以选择sprintf,但这些都是需要你预先分配空间的,对于一些不可预知长度的字符串格式化,就比较鸡肋了,不过还是可以实现的,如: void XString::format(const char *strFmt, ...) { va_list vl; va_start(vl, strFmt); int count = _vscpri…
二十二. 标准模板库 ● STL基本介绍 标准模板库(STL, standard template library): C++提供的大量的函数模板(通用算法)和类模板. ※ 为什么我们一般不需要自己写模板?因为STL里已经为我们写好了.我们的任务是:学会使用它们. STL(Standard Template Library),即标准模板库,由惠普实验室(HP Labs)开发, 是一个具有工业强度的.高效的C++程序库.它被容纳于C++标准程序库(C++ Standard Library)中,是A…
更多代码可以查询本人GitHub:欢迎阅读,star点起来. Glide二次封装库源码 前言 为什么选择Glide? Glide 轻量级 速度快 可以根据所需加载图片的大小自动适配所需分辨率的图 支持多种格式图片(静态webp,动态gif,jpeg,jpg,png) 支持多种数据源图片(url,drawable,src,file,asserts,raw) Google主导 更多知识点可以看我的上一篇文章: Picasso,Glide,Fresco对比分析 http://blog.csdn.net…
1. 图形验证码库 captcha # 引入图形库 from captcha.image import ImageCaptcha # 获取图像对象 image = ImageCaptcha(width=120, height=40, font_sizes=(30, 32, 36)) chars = "1234"   # 创建二维码对象 im = image.generate(chars)   # (1) 直接取值 img_val = im.getvalue()   # (2) 保存文件…
一.前言 为什么要先说Requests库呢,因为这是个功能很强大的网络请求库,可以实现跟浏览器一样发送各种HTTP请求来获取网站的数据.网络上的模块.库.包指的都是同一种东西,所以后文中可能会在不同地方使用不同称谓,不要迷惑哦. 结合一个实例来讲解吧.我的一个设计师小伙伴常去一些设计类网站收集素材,其中有个网站Unsplash里面美图特别多,所以想要把里面的图片都保存下来,这样咱们的小爬虫就登场了.说干就干,赶紧开始吧. 先来准备环境 二.运行环境 系统版本 我使用的是Windows10. 好多…
如何使用ADC驱动库 1  实现如下两个函数     a: HAL_ADC_MspInit()使能ADC时钟,设置时钟源, 使能ADC Pin,设置为输入模式,可选 DMA,中断     b:HAL_ADC_MspDeInit() 与 HAL_ADC_MspInit()作用相反,用来关闭ADC,可选 DMA,中断 2  配置ADC参数,详细参数描述参考ADC属性定义.通过HAL_ADC_Init()来加载参数 3  配置ADC通道,包括使用的通道,采样时间等 HAL_ADC_ConfigChan…
一 概述 下图是表述了用户层和HAL_Driver的交互过程,基本上从用户APP调用HAL_Driver APIs并且视情况当使用DMA或者专用中断时通过中断处理程序调用HAL_Driver APIs 使用DMA或中断时,中断模式通过回调函数来完成用户定义流程(实时处理),DMA中断模式使用相同的调用流程 二 具体使用过程 1 HAL(硬件抽象层) 初始化 2 HAL IO 操作流程 -- HAL functions 与内部数据处理类似发送/接收,读/写. 提供三种处理模型 a Polling…
简述 1. OpenGL用到的库分为OpenGL核心库.OpenGL实用库.OpenGL辅助库和OpenGL工具库(不是必须) 2. OpenGL核心库 核心库包含有115个函数,函数名的前缀为gl 这部分函数用于常规的.核心的图形处理,由gl.dll来负责解释执行.由于许多函数可以接收不同数据类型的参数,因此派生出来的函数原形多达300多个 核心库中的函数主要可以分为以下几类函数: 1)绘制基本几何图元的函数 如绘制图元的函数glBegin().glEnd().glNormal*().glVe…
上一篇文章输生成了jni头文件,里面包含了本地C代码的信息,提供我们引用的C头文件.下面实现本地代码,再用ndk-build编译生成.so库文件.由于编译时要用到make和gcc,这里很多人是通过安装cygwin,搭建一个linux环境编译.我是直接用Android NDK里ndk-build工具编译,没有安装cygwin,也能编译. 一.编写本地代码fib.c 首先在过程fiblib下新建一个目录jni,将上一篇生成的jni头文件添加到这个目录,接着在源码目录下新建文件fib.c: 文件jni…
Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说,Beautiful Soup库是可以解析.遍历.维护HTML/XML文件的“标签树”的功能库.本文总结了BeautifulSoup的基本使用方法. 一.Beautiful Soup库基本元素 库的比较常见的引用方式如下 from bs4 import BeautifulSoup #从Beautifu…
本章参考资料:<STM32F76xxx参考手册>.<STM32F7xx规格书>.<Cortex-M3权威指南>, STM32 HAL库帮助文档:<STM32F779xx_User_Manual.chm>. 在上一章中,我们构建了几个控制GPIO外设的函数,算是实现了函数库的雏形,但GPIO还有很多功能函数我们没有实现,而且STM32芯片不仅仅只有GPIO这一个外设.如果我们想要亲自完成这个函数库,工作量是非常巨大的.ST公司提供的HAL软件库,包含了STM3…
我们在链接脚本在编程中的高级运用之中的一个可变长数组中已经讲述了编译链接的原理,并且以uboot命令为例具体介绍链接脚本怎样实现可变长数组. 本章在前者的基础上继续讲述链接脚本在执行时库中的高级应用技巧.以及编译器怎样支持类对象的构造和析构函数.本章的应用原则上类似于可变长数组,但本章更加側重讲述执行时库的实现原理,其不仅通过链接脚本的section来实现可变长数组去支持随意多类对象的构造函数和析构函数,并且还支持特定函数体的"可变长". 一.执行时库和类对象的构造.析构函数 非常多程…
一.引入必要文件 <!--1.0引入jQuery核心库--> <script src="jquery-easyui-1.4.4/jquery.min.js"></script> <!--2.0引入jQuery EasyUI核心库--> <script src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script> <!--3.0引入Easy…
一.创建版本库 1.安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"$ git config --global core.autocrlf false /…
一.urllib2库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 在Python中有很多库可以用来抓取网页,我们先学习urllib2. urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) urllib2 官方文档:https://docs.python.org/2/library/urllib2.html urllib2 源码:https://hg.python.org/cpython/file/2.7/Lib/urlli…
目录 selenium请求库 一.什么是selenium 二.环境搭建 三.使用selenium模块 1.使用chrome并设置为无GUI模式 2.使用chrome有GUI模式 3.显示等待与隐式等待 4.查找元素--find_element_by_* 5.xpath查找元素-- brower.find_element_by_id('tag_id') 6.清空输入框-- input_tag.clear() 7.frame切换-- brower.switch_to.frame('小页面的id')…
先参考这篇文章 Linux实现树莓派3B的国密SM9算法交叉编译——(一)环境部署.简单测试与eclipse工程项目测试 部署好环境,并简单测试交叉编译环境是否安装成功,最后实现在Eclipse上进行交叉编译. 这篇文章主要介绍在Eclipse上进行miracl的交叉编译测试与生成miracl静态库,方便后续实现国密SM9算法. 一.MIRACL库介绍 MIRACL(Multiprecision Integer and RationalArithmetic C/c++ Library)是一套由S…
GMap.NET的出现,解决了传统的依赖于地图引擎的代价高昂的解决方案,而且使用传统地图引擎,无法迁移,就连我们的地图放大缩小这样常规的方法,都是紧紧绑定在这些令人恶心的地图引擎开发包提供的SDK接口上,目前的Mapxtreme. ArcEngine.SuperMap等,不仅开发方式迥异,而且收费昂贵.更要命的就是部署复杂,不适合常规的桌面GPS监控系统开发.而基于GMap.NET,基于一套方法,可以支持多个地图,不仅仅是谷歌,百度,ArcGIS地图也可以支持. GMap.NET的开发,不仅省掉…
如何使用SPI库1 声明SPI hanlde, 例如: SPI_HandleTypeDef hspi2 通过实现HAL_SPI_MspInit()函数初始化底层资源 以下两个必须进行初始化 a 使能spi时钟 b 配置spi pins 以下根据需要初始化 c NVIC 中断配置 d DMA配置3 配置hspi,包括模式,datasize,baudrate,msb/lsb,crc等4 调用HAL_SPI_Init()函数,初始化spi配置以及底层资源(通过调用HAL_SPI_MspInit())…
http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm 1.概念和区别:    静态库就是在编译过程中一些目标文件的集合.静态库在程序链接的时候使用,链接器会将程序中使用到函数的代码从库文件中拷贝到应用程序中.一旦链接完成,在执行程序的时候就不需要静态库了.     由于每个使用静态库的…
Description PHP QR Code is open source (LGPL) library for generating QR Code, 2-dimensional barcode. Based on libqrencode C library, provides API for creating QR Code barcode images (PNG, JPEG thanks to GD2). Implemented purely in PHP. Features Suppo…
Python中cookielib库(python3中为http.cookiejar)为存储和管理cookie提供客户端支持. 该模块主要功能是提供可存储cookie的对象.使用此模块捕获cookie并在后续连接请求时重新发送,还可以用来处理包含cookie数据的文件. 这个模块主要提供了这几个对象,CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar. 1. CookieJar CookieJar对象存储在内存中. >>> impor…
1. 添加依赖库 Build Phases → Link Binary With Libraries MobileCoreServices.framework CFNetwork.framework libEaseMobClientSDKLite.a libsqlite3.dylib libstdc++.6.0.9.dylib libz.dylib libiconv.dylib libresolv.dylib libxml2.dylib 如果使用的是xcode7,后缀为tbd 使用cocoapo…
首先,导入下图所示库 然后,import org.apache.lucene.search.highlight.*; 下面,我们新建一个实现高亮显示功能的函数 public static String displayHtmlHighlight(Query query, String fieldName, String fieldContent) throws IOException, InvalidTokenOffsetsException { SmartChineseAnalyzer anal…
先看个效果图: 上一篇中,我们留了问题,在 Tv Home 界面这种很常见聚焦卡位放大动画效果,我们这一篇就来看看 Leanback 库是怎么实现的. 如果要我们自己实现的话,思路应该不难,就是写个放大.缩小动画,然后在卡位获得焦点时应用放大动画,失去焦点时应用缩小动画,所以关键点只是在于如何进行封装.那下面就来学学 Google Leanback 库的 ItemView 缩放动画的实现思路. 源码分析 看源码时,我习惯带着目的性地去阅读,这样只要专注于理解跟目的相关的代码即可,不用每行代码地去…