前言   stm32系列是最常用的单片机之一,不同的版本对应除了引脚.外设.频率.容量等'不同之外,其开发的方法是一样的.  本章讲解使用库函数使用GPIO引脚功能.   补充   本文章为多年前学习方法总结,基本是一通百通(PS:学的是方法而不是技术本身).   stm32系列帮助文件GPIO手把手详细解说   编写GPIO功能,建议初学者学习帮助文件中的案例.    这是固件库V3.4中的GPIO源文件,而V3.5中的资源文件使用的不是固件库,V3.4这个文件明显是GPIO操作LED的,所以…
前言   stm32系列是最常用的单片机之一,不同的版本对应除了引脚.外设.频率.容量等'不同之外,其开发的方法是一样的.  本章讲解使用GPIO引脚功能驱动LED灯和接收Key按钮输入.   STM32系列GPIO驱动LED灯   先来笔者根据自己使用的开发板的电路来使用GPIO进行LED操作,下图是笔者使用的开发板LED灯的电路图:    引脚PD6接LED1,PD12接LED2,PD13接LED3,电阻是限流电阻(计算方式高电平减去LED1的压降,然后除以LED能流过的电流).  复制模版…
很久没有碰单片机了,两年了吧,因为项目需要,最近入手一块红牛的开发板,核心为STM32F103ZE.虽然以前做过大概半年的stm32的开发,现在天天在.net平台下写代码,已经忘记的差不多,恰逢周末,补补课,以后用的时候也方便点. ST推出的FW大大提高了单片机SW的开发效率,所以在新建工程前先来了解下这个SDK.我使用的是最新的v3.5固件库,这个固件库可以分为三个部分: 1.内核支持(..\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\…
一.方法如上图: 本人的keil uvision4.12版本如下,晕倒! * Version : V2.0.1* Date : 06/13/2008 二.keil MDK和keil uvision的关系: 1.总结来说,KEIL公司目前有四款独立的嵌入式软件开发工具,即MDK.KEIL C51.KEIL C166.KEIL C251,它们都是KEIL公司品牌下的产品,都基于uVision集成开发环境,其中MDK是RealView系列中的一员. 原文:http://www.myir-tech.co…
前面介绍了通过HttpClient实现HTTP接口的GET方式调用和POST方式调用,那么文件下载与文件上传又该如何操作呢?其实在HttpClient看来,文件下载属于特殊的GET调用,只不过应答报文由字符串形式变成了文件形式:同样文件上传属于特殊的POST调用,只不过请求报文也由字符串形式变成了文件形式.那么文件下载与普通的GET调用相比,在代码上的区别仅仅是发送请求send方法的第二个参数,之前演示普通GET调用的时候,send方法第二个输入参数为BodyHandlers.ofString(…
前言   上一篇已经将himpp套入qt的基础上进行开发.那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤.   受限制   因为直接配置sample的vi比较麻烦,确实是困难的,其实就是配置驱动,所以我们只能从开发板的demo入手,去在相等条件下探测可能的留,从vpss中拿取后,进行软编码.  当然,如果不用qt还有一种方式,也就是大量开发海思人员使用的方式,是基于sample写一个编码程序,然后使用本地socket交互,其实绝大部分海思开发者都是这样开发的…
都说开发stm32都是使用kail iar+jatg/swd的方式,然而arm公司已经开发出了CMSIS DAP的开源下载工具,全称是CoreSight Debug Access Port,网络上有大神x893移植到stm32F103C8T6的开发板,可以做成比较小的烧录器,可以调试.下载,基于M3系列及其以上都可以做成dap下载工具,但是M0就不行.keil官网的介绍如下:CMSIS-DAP is the interface firmware for a Debug Unit that con…
在嵌入式开发中,可以使用c标准库自带的库函数,而不用自己去早轮子,qsort 和bsearch就是其中的两个比较好用的 二分法查找,前提是已经排序好的数据.下面的代码, 如果数据为排序,则要进行排序后,再查找. /* bsearch example */ #include <stdio.h> /* printf */ #include <stdlib.h> /* qsort, bsearch, NULL */ int compareints (const void *a, cons…
反射概念在网上到处都有,但是讲到的具体的应用很少,一个重要的原因是现实中真的很少用得到它.引用msdn上对“反射”的解释: "通过 System.Reflection 命名空间中的类以及 System.Type,您可以获取有关已加载的程序集和在其中定义的类型(如类.接口和值类型)的信息. 您也可以使用反射在运行时创建类型实例,以及调用和访问这些实例." 这个解释着实让人难以理解,至少对新手来讲,一头雾水.那么这篇文章我首先从概念下手,用一种尽量易于理解的方式解释一下反射到底是个什么东西…
SQLite数据库存储(上) 创建数据库 Android专门提供了一个 SQLiteOpenHelper帮助类对数据库进行创建和升级 SQLiteOpenHelper需要创建一个自己的帮助类去继承它并且重写它的两个抽象方法,即 onCreate() 和 onUpgrade() SQLiteOpenHelper 中有两个重要的实例方法:getReadableDatabase() 和 getWritableDatabase(),第一个方法可以在磁盘空间已满的时候,只读数据,而第二种方法在空间已满的时…