自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (5)
  • 收藏
  • 关注

转载 stm32 NVIC中断管理实现[直接操作寄存器]

cortex-m3支持256个中端,其中包含了16个内核中断,240个外部中断。stm32只有84个中断,包括16个内核中断和68个可屏蔽中断。stm32f103上只有60个中断,f107上才有68个中断。     中断是stm32很基础的一个功能,学会使用中断,才可以更好的使用其他的外设。理解stm32的中断,必须要先从stm32的中断优先级分组是怎么回事。要理解优先级分组,就要先理解什

2016-08-31 22:21:04 4295

原创 stm32 printf的实现

嵌入式系统开发中,常常使用串口将重要的数据或者字符信息打印到PC,为系统的调试带来了很大的便利。本文简单介绍一下printf在stm32上的实现,当然也不仅限于stm32,只要把串口发送函数稍加改动就可以移植其他任何微控制器环境上。提到printf,首先简单介绍一下可变参数的实现va函数:va_list arg_ptr;void va_start( va_list arg_pt

2016-08-30 22:01:17 3158

转载 stm32 PVD 可编程电压监测器

PVD (Programmable Votage Detector) ,即可编程电压监测器 。stm32库函数手册中没有细讲这个模块,只是在 PWM一章中列出了两个相关函数。但是这个功能在实际项目中会有较大的作用,当电压过低时,对系统的一些数据使用掉电不丢失的 EEPROM 或 Flash 保存起来,同时对外设进行相应的保护操作。      PVD的作用是监视供电电压,在供电电压下降到

2016-08-30 21:39:42 7110 4

转载 stm32 SWD 下载 调试配置

找到一篇比较好的 关于stm32  SWD模式 下载 调试 配置文章 整理如下:     我们比较常用的是Jlink下载器 ,这种下载器有一个缺点就是使用的Jtag 20PIN接口,太多的PIN会导致一些小型的PCB板很拥挤,也会增加布线的难度。 而使用SWD接口下载调试,只需要要使用4个PIN:  GND, RST, SWDIO, SWDCLK ,而且下载速度可以达到10M/s,优势显而

2016-08-30 21:39:02 2933 1

转载 stm32 UCGUI 完美移植

UCGUI是一种嵌入式应用中的图形支持系统。它设计用于为任何使用LCD图形显示的应用提供高效的独立于处理器及LCD控制器的图形用户接口,它适用单任务或是多任务系统环境, 并适用于任意LCD控制器和CPU下任何尺寸的真实显示或虚拟显示。         它的设计架构是模块化的,由不同的模块中的不同层组成,由一个LCD驱动层来包含所有对LCD的具体图形操作。UCGUI可以在任何的CPU上运行,

2016-08-30 21:38:17 16993 2

转载 stm32 DA 数模转换

stm32并不是所有的型号都有DAC功能,只有stm32f103xC/D/E系列 才有DAC转换功能。由于库函数手册中没有相关说明,所以只能通过在MDK提供的相关库文件 stm32f10x_dac.c 中找到相应的DAC函数,做了一番尝试。    折腾了一天,实现了DAC的转换和三角波的输出。我使用的是 stm32rct6的芯片,有两个DAC通道,在PA4和PA5两个引脚上。

2016-08-30 21:37:44 13495 3

转载 stm32 驱动 触摸屏

由于智能手机的发展和大屏幕的兴起,触摸屏已经得到了广泛的应用。触摸屏分为两种:电阻触屏   俗称“软屏”;电容触屏俗称“硬屏”。     电阻触摸屏的屏体部分是一块多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的阻性材料组成的导电层(ITO膜),上面再盖有一层外表面经过硬化处理、光滑防刮的塑料层。它的内表面也涂有一层ITO,在两层导电层之间有许多细小(小于千分之一英寸)的透明

2016-08-30 21:36:28 6387

转载 stm32 Fatfs 读写SD卡

读写SD是嵌入式系统中一个比较基础的功能,在很多应用中都可以用得上SD卡。折腾了几天,总算移植成功了 最新版Fatfs(Fatfs R0.09) ,成功读写SD卡下文件。          FatFs (http://elm-chan.org/fsw/ff/00index_e.html)是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。 FatFs 的编写遵循AN

2016-08-30 21:35:33 22603 3

转载 Uip WebServer 实现

Uip的Webserver比较复杂,用c语言实现一个简单服务器的所有功能,路由功能,GET传参,动态页面生成等。 要运行Uip的WebServer 只需要:1. 修改uip-con.h 里的#inlcude "webserver.h"  去除其注释2. 在User/main.c 里加入      httpd_init();   //初始化服务器 Uip+ stm32移植参见

2016-08-30 21:34:45 1901

转载 Uip WebClient 实现

Uip WebClient 实现的功能是接入互联网,通过http协议访问某个网站。HTTP是一种应用层协议。基于TCP/IP。  TCP/IP作为传输层协议解决数据如何在网络中传输,HTTP作为应用层协议,解决如何包装数据。默认的HTTP访问端口为80端口。 Uip + stm32 的移植参见 Uip + Stm32移植问题总结  相关文件:Apps/resolv.c 文件实现

2016-08-30 21:33:41 1191

转载 Uip + Stm32移植问题总结

uIP 由瑞典计算机科学学院(网络嵌入式系统小组)的Adam Dunkels (http://dunkels.com/adam/uip/)开发。其源代码由C 语言编写,并完全公开,有了这个TCP/IP协议栈,让嵌入式可以实现的功能更为丰富。可以作为WebClient 向指定网站提交数据,可以作为WebServer作为网页服务器,提供一个小型的动态页面访问功能。由于是开源的免费协议栈,据说Uip没有

2016-08-30 21:31:59 2373

转载 stm32 SPI通信[操作寄存器+库函数]

SPI(Serial Peripheral Interface--串行外设接口) 总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。 SPI是Freescale(原 Motorola)公司首先在其处理器上定义的。    SPI是一种高速、主从式、全双工、同步传输的通信总线,SPI总线在物理层体现为四根传输线:MOSI (Master Ou

2016-08-30 21:31:04 6793 2

转载 stm32 can总线通信[库函数]

CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO118?8)。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。相比于I2C和SPI总线结构,can总线定义了更为优秀的物理层、数据链路层,并

2016-08-30 21:30:11 6708

转载 stm32 i2c通信 [操作寄存器+库函数]

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

2016-08-30 21:29:24 8860 1

转载 stm32 DMA数据搬运 [操作寄存器+库函数]

DMA(Direct Memory Access)常译为“存储器直接存取”。早在Intel的8086平台上就有了DMA应用了。         一个完整的微控制器通常由CPU、存储器和外设等组件构成。这些组件一般在结构和功能上都是独立的,而各个组件的协调和交互就由CPU完成。如此一来,CPU作为整个芯片的核心,其处理的工作量是很大的。如果CPU先从A外设拿到一个数据送给B外设使用,同时C外

2016-08-30 21:28:35 1577

转载 stm32 Flash读写[库函数]

通过对stm32内部的flash的读写可以实现对stm32的编程操作。         stm32 的内置可编程Flash在许多场合具有十分重要的意义。如其支持ICP特性使得开发人员对stm32可以警醒调试开发,可以通过JTAG和SWD接口对stm32进行程序烧写;支持IAP特性使得开发人员可以在stm32运行程序的时候对其内部程序进行更新操作。对一些对数据安全有要求的场合,可编程FLAS

2016-08-30 21:27:32 866

转载 stm32 RTC实时时钟[操作寄存器+库函数]

"RTC"是Real Time Clock 的简称,意为实时时钟。stm32提供了一个秒中断源和一个闹钟中断源。 RTC的技术器是一个32位的计数器,使用32.768khz的外部晶振。 2038年问题  在计算机应用上,2038年问题可能会导致某些软件在2038年无法正常工作。所有使用UNIX时间表示时间的程序都将受其影响,因为它们以自1970年1月1日经过的秒数(

2016-08-30 21:26:30 8235 1

转载 stm32 BKP寄存器操作[操作寄存器+库函数]

BKP是“BACKUP”的缩写,stm32f103RCTE的内部配备了10个16位宽度的BKP寄存器。在主电源切断或系统产生复位时间时,BKP寄存器仍然可以在备用电源的支持下保持其内容。 BKP在实际应用中可以存入重要数据,防止被恶意查看,或用于断电回复等。 本例实现对BKP寄存器的读写操作,和入侵检测和处理。主程序中写入寄存器后,依次打印出10个BKP寄存器数据,然后触发GPIOC1

2016-08-30 21:25:38 3429

转载 stm32 低功耗设计[操作寄存器+库函数]

stm32的低功耗模式有三种: 睡眠模式(内核停止,外设运行)停机模式(所有时钟都停止)待机模式(1.8V内核电源也关闭) 在这三种模式中,最低功耗的是待机模式,在此模式下,最低只需要2uA左右的电流。整个1.8V供电区被断电,PLL、HSI、HSE振荡器都被关闭。SRAM和寄存器内容丢失。停机模式是次低功耗的的,其典型的电流损耗在20uA左右。最后就是睡眠模式。

2016-08-30 21:24:29 675

转载 stm32 AD模数转换[操作寄存器+库函数]

stm32f103最少有2个AD模数转换器,每个ADC都有18个通道,可以测量16个外部和2个内部模拟量。最大转换频率为1Mhz,也就是转换时间为1us(在 ADCCLK = 14Mhz,采样周期为1.5个时钟周期时)。最大时钟超过14Mhz,将导致ADC转换准确度降低。stm32的ADC是12位精度的。 stm32的ADC转换有两种通道,规则通道和注入通道,注入通道可以抢占式地打断规则通

2016-08-30 21:23:17 5623

转载 stm32 窗口看门狗[操作寄存器+库函数]

stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。窗口看门狗的上窗口就是配置寄存器WWDG->CFR里设

2016-08-30 21:22:12 785

转载 stm32 独立看门狗[操作寄存器+库函数]

以单片机为核心的微型计算机系统中,单片机经常会受到来自外界电磁场的干扰。造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作。看门狗就是一种专门用于检测单片机程序运行状态的硬件结构。 stm32也是如此。 stm32 的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障时,它也仍然有效。这里需要注意的是独立看门狗的时钟是一个内

2016-08-30 21:21:14 2445

转载 stm32 TIM定时器 PWM脉冲输出[操作寄存器+库函数]

脉冲调制(PWM)是利用微处理器对数字输出来对模拟电路的一种非常有效的技术。简单点说就是对确定频率的信号,调整其占空比。 stm32的定时器除了TIM6和TIM7外,其他定时器都可以产生PWM输出。其中高级定时器TIM1和TIM8可以产生多达7路的PWM输出。通用定时器可以产生4路的PWM输出。 在stm32 TIM定时器[操作寄存器+库函数]  中我们是通过在中断中,翻转指定引脚

2016-08-30 21:20:27 7487

转载 stm32 TIM定时器[操作寄存器+库函数]

stm32配备了2个高级定时器TIM1和TIM8,4个通用定时器 TIM2,TIM3,TIM4和TIM5,还有两个基本定时器TIM6和TIM7。 高级定时器常用于电机控制,因为其加入了死区控制,紧急制动,定时器同步等高级特性。基本定时器可以为数模转化器提供准确的时间基准。 stm32的通用定时器由一个通过可编程预分频器驱动的16位自动装载计数器构成。通用定时器可以用于测量输入信号的脉冲长度

2016-08-30 21:19:25 8522

转载 stm32 外部中断嵌套[操作寄存器+库函数]

stm32共有19个外部中断: 线0~15:对应外部I/O口的输入中断线16:连接到PVD输出。PVD(Programmable Votage Detector),即可编程电压监测器。作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。线17:连接到RTC实时时钟产生

2016-08-30 21:18:22 1141

转载 stm32 USART 串口通信[操作寄存器+库函数]

串口通信虽然在如今的电脑上使用的越来越少,因为其在通信速率,距离已经不适应pc的要求,取而代之的是USB口。但是在嵌入式领域,USART仍然广泛运用着。  stm32的最多可以提供5路串口,有分数波特率发生器、支持同步单线通信和半双工单线通信、具有DMA等。使用USART时,stm32的I/O口经RS232电平转换电路 和电脑的串口连接。  串口使用只需要开始串口时钟,设置相应的I

2016-08-30 21:17:15 2373 1

转载 stm32的按键扫描[操作寄存器+库函数]

本例将实现stm32的按键扫描功能。 操作寄存器 stm32的I/O口作为输入使用时,是通过读取GPIOx -> IDR 寄存器的内容来读取I/O口状态的。 IDR寄存器各位描述如下: 由于systick不能像库函数那样方便的产生中断,通过查询systick状态位后,再查询各管脚状态反而更为不方便,所以和库函数方法不一样,直接查询了管脚状态来检测按键。

2016-08-30 21:15:47 5197

转载 stm32上最方便的定时器Systick[操作寄存器+库函数]

Systick 是stm32上一个用处很多的内设,所有基于arm-cortex m3 的芯片都有这个定时器,所以考虑到平台的可移植性时,可以多使用Systick。 Systick 是一个24位数据宽度的倒计数定时器,其计数范围只能到 1677215(2^24),当计数到0时会从RELOAD寄存器 中自动重装定时初值。只要不把SysTick的控制及状态寄存器中的使能位清除,计数器就不会停止。

2016-08-30 21:13:57 4002

转载 stm32点个灯[操作寄存器+库函数]

stm32的使用和51单片机不同,单片机接上晶振接上电源 直接就可以操作io口,但是stm32的时钟是经过了倍频器放大频率的,然后再由锁相环输出稳定的时钟频率。这么做的带来了很多好处,虽然stm32的外部时钟只有8Mhz ,经过倍频器后就可以得到好几种的时钟频率 给不同的外设提供不同的时钟频率。所以stm32有很多总线,这些总线的频率是不同的,而且在使用前总线是关闭的,使用外设前必须打

2016-08-30 21:12:43 2543

转载 stm32 开发环境MDK+库文件配置

stm32 是一款arm cortex-m3 架构的芯片 结合库函数使用 可以更方便的实现各种功能 尤其是结合各种总线开发应用时 因为库函数已经封装很多总线的处理方法和驱动 直接调用对应库函数 就可以操作各个总线 相比于 直接操作寄存器来说 操作I2C SPI CAN 等总线结构 会简单很多stm32 的开发工具有很多MDK ADS AVR 等 我用的是MDk 其实就是可以编译arm的keil

2016-08-30 21:10:59 5606

转载 用git send-email发送patch

用 gmail 作为发送服务器。为了用git send-email通过gmail服务器发送patch。首先编辑 ~/.gitconfig , 写入你的账号配置[sendemail]smtpencryption = tlssmtpserver = smtp.gmail.comsmtpuser = yourname@gmail.comsmtpserverport = 5

2016-08-30 09:38:51 3014

转载 git提交patch,并发送邮件列表

一. 先配置git send-mail 的 smtp服务器:1. 安装git-email:# apt-get install git git-core git-email修改gitconfig文件:vim ~/.gitconfig[color]ui = auto[commit]template = ~/.commit_template[user]name =

2016-08-30 09:01:37 2921

转载 GIT常用命令整理

一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建

2016-08-30 09:00:51 298

转载 BLE-GATT

The Generic Attribute Profile (GATT)使用属性定义一个服务框架,定义了服务和特性的过程和数据格式,包含发现、读取、写入、通知指示特性和配置特性广播。    GATT配置文件设计用于应用程序和其它配置文件,客户端与服务器通讯时使用它。服务器包含了一系列的特性,GATT配置文件定义了怎么使用属性协议去发现、读取、写入、获得指示和配置特性广播。

2016-08-30 00:06:20 480

转载 BLE-SDP服务发现协议

SDP的全称是Service Discovery Protocol,中文是服务发现协议。SDP(服务发现协议)是蓝牙协议体系中的核心协议,是蓝牙系统重要组成部分,是所有用户模式的基础。在蓝牙系统中.客户只有通过服务发现协议才能获得设备信息、服务信息及服务特征,才能在此基础上建立相互间的连接。通过这个协议,应用程序可以发现哪些服务可用以及服务的特性是什么。    SDP服务器-客户端模型:

2016-08-30 00:05:30 4647

转载 BLE-Start

来自:http://blog.csdn.net/xgbing    蓝牙是一种短距离的通讯方式,它设计的意图是取代电子便携设备之间的有线电缆连接。蓝牙的主要特性是健壮性、低功耗、成本低,它工作于免费的2.4无线传输频段。    蓝牙有两种技术系统:基本速率Basic Rate (BR)和低功耗 Low Energy (LE)。这两种系统都包括了设备发现、建立连接和连接机制。

2016-08-30 00:04:30 376

转载 BLE-链路层

来自:http://blog.csdn.net/xgbing    链路层定义设备处于状态机中五种状态的一种:(1)旁路状态;     处于此状态下的设备不发送或接收数据,处于其它状态下都可以转到此状态。(2)广告状态;    处于此状态的设备发送广播包或者监听、响应广播包。可由旁路状态进入广告状态。(3)扫描状态;    扫描状态监

2016-08-30 00:02:41 852

转载 BLE-NRF51822教程19-Battery Service

转自:http://blog.csdn.net/xgbing    Battery Service是有关电池特性方面的服务,如果需要它,在初始化时将它加入到蓝牙协议栈。    如果通过ble_bas_battery_level_update(),电池电量将会通知,Battery Service将发送事件到应用程序。(1)Battery Service事件类型

2016-08-29 23:59:14 1817

转载 BLE-NRF51822教程18-overview

转自:http://blog.csdn.net/xgbing蓝牙协议栈nrf51822开发中,蓝牙协议栈和应用开发是分开的。(1)兼容蓝牙4.0低功耗协议栈基带层,L2CAP\AAT\SM\GAP\GATT协议,设备和广播,GATT客户端和服务器,SMP支持(包含MITM和OOB配对);(2)应用部分和协议栈部分内存空间隔离;(3)采用异

2016-08-29 23:55:35 821

转载 ubuntu 16.04 启动进入命令行的解决方案 ubuntu 16.04 boot into text mode

步骤如下:[plain] view plain copy sudo vi /etc/default/grub  Comment the line GRUB_CMDLINE_LINUX_DEFAULT=”quiet”, by adding #at the beginningChange GRUB_CMDLINE_LINUX=”" to GRUB_C

2016-08-26 08:52:38 797

Linux虚拟内存管理

E文,想自残可以下载。

2016-08-26

Linux Graphics Stack

系统讲解显卡硬件,软件的基础知识。全英文。斟酌。

2016-08-25

UEFI shell application example

UEFI shell application pciio

2011-06-28

UEFI shell application example

UEFI shell application example : helleword

2011-06-28

UEFI spec 2.3

unified extensible firmawre interface specification, verison2.3

2011-06-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除