自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

转载 STM32 SPI DMA 的使用

STM32 SPI DMA 的使用  一是想总结一下SPI总线的特点与注意点,二是总结一下SPI DMA的使用一、SPI信号线说明  通常SPI通过4个引脚与外部器件相连:MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。SCK:串口时钟,作为主

2017-01-24 17:21:52 5532

转载 STM32开源板全屏图片提速例程/RA8875/SPIFLASH/DMA

过节之前这个没调出来今天继续搞,下午才搞出来,中午去吃饭的时候带到了线,板子从桌上摔到瓷砖上,液晶朝下液晶不能用了,扔了,换了一块,也许这是能调出来的先兆哈 确实搞定了,速度比不用DMA方式快很多步骤:1.将图片处理后保存在TF卡上(macro sd)2.将TF卡上的图片通过编程,复制到SPI FLASH3.设置RA8875一堆寄存器,透过D

2017-01-24 14:45:31 5942 4

转载 Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化

我们知道,SPI数据传输可以有两种方式:同步方式和异步方式。所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回。而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码来解释就是,调用传输的函数后,函数会立刻返回而不用等待数据传输完成,我们只需设置一个回调函数,传输完成

2017-01-24 14:13:02 268

转载 Linux SPI总线和设备驱动架构之三:SPI控制器驱动

通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动、通用接口层和控制器驱动三大部分。其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1.    申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等;2.    配置SPI控制器的工作模式和参数,使之可以和相应的设备进行正确的数据交换工作;3.    向通用接口层提

2017-01-24 14:10:59 200

转载 Linux SPI总线和设备驱动架构之二:SPI通用接口层

通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备、SPI协议驱动和SPI控制器的数据抽象,一部分是为了协助数据传输而定义的数据结构。另外,通用接口层还负责SPI系统与Linux设备模型相关的初始化工作。

2017-01-24 14:05:50 426

转载 Linux SPI总线和设备驱动架构之一:系统概述

SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS    片选信号SCK  时钟信号MISO  主设备的数据输入、从设备的数据输出脚MOSI  主设备的数据输出、从设备的数据输入脚因为在大多数情况下,CPU或SOC一侧

2017-01-24 14:04:01 372

转载 spidev介绍

一、spidev简单介绍        如果在内核中配置spidev,会在“/dev”目录下产生设备节点,通过此节点可以操作挂载在该SPI总线上的设备,接下来将从驱动层和应用层来分析程序。二、spidev驱动层2.1、驱动注册        分析一个设备驱动,一般都是从module_init和module_exit处开始,本文也不例外,程序如下:点击

2017-01-24 13:57:48 7998

转载 驱动之module_init/module_exit

在前面helloworld的编写里面,我们使用了两个宏分别是module_init和module_exit,这里分析下为什么使用这两个宏。在写模块的时候有两个特殊的函数,分别是init_module和cleanup_module,这两个函数分别在insmod的时候和rmmod的时候调用,并且insmod和rmmod只识别这两个特殊的函数,可是我们前面的例子里面并没有这两个函数。怎么会这样呢

2017-01-24 11:45:17 449

转载 STM32连续进中断问题+

STM32 有时候会不断进入中断,解决方法如下1.串口初始化配置时,需要打开ORE 溢出中断,如下红色代码所示[cpp] view plain copyvoid Usart_Init(void)  {          GPIO_InitTypeDef GPIO_InitStructure;      NVIC_I

2017-01-23 02:30:42 3473

转载 串口利用联合体收发浮点数

利用联合体通过串口收发浮点数以下介绍两种方法,一种是利用指针,一种是利用联合体,时间宝贵的看客可以直接跳到第二种方法这里只是讨论数据发送前和接收后的处理,不讨论具体发送过程方法一:指针 UART串口有一个缺点,就是发送和接受是一个字节一个字节的接收,如果发送的浮点数那可怎么办啊? 有人会说,那就一个字节一个字节发送啊那么,我先定义一个double d

2017-01-20 17:10:04 2278

转载 串口接收浮点数

union UNIVOLTAGE{ float fVoltage; char voltage4Byte[4];};UNIVOTAGE vtg;char RS232ComBuf[4096];strcpy(vtg.voltage4Byte, RS232ComBuf);printf("%f", vtg.fVoltage);

2017-01-20 16:52:38 1209

转载 串口接收数据

在使用串口发送数据时可以选择字符串发送或者十六进制发送,通常情况下我们习惯选用字符串发送数据。关于两者的区别,需要从计算机存储数据的格式说起。        在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示。我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。

2017-01-20 16:42:05 4727

转载 IEEE754标准计算

IEEE754标准是一种浮点数表示标准一般分为单、双精度两种单精度是32位的二进制数,双精度是64位的二进制数一个浮点数的组成分为三个部分第1位是数符s s=1表示负数 s=0表示正数第2-9位为阶码E (双精度为2-12位)第10-32位为尾数M (双精度为13-64位)转换大致过程如下:将十进制数转为二进制数 用类似于科学计数法的形式表示成V=(-1)^s*(1+M)*2^(E-127)(单精

2017-01-20 16:01:11 15289 1

转载 浮点格式IEEE754详解

2012-09-13 11:08 by neu_zjujunge, 7214 阅读, 0 评论, 收藏, 编辑  Intel聘请了最好的数值分析家来为8087FPU设计浮点数格式,他们设计的KCS浮点数标准的工作是如此出色,因此IEEE将这种格式作为IEEE浮点数格式的基础。  为了满足广泛的性能与精度需求,intel实际实现三种浮点格式:单精度、双精度以及扩展精度,本文以前两种讲

2017-01-20 15:55:17 2516

转载 KEIL MDK LIB库文件的制作

问题引出:为什么要做成lib库?1、有些人不想将自己写的源代码公开,但是同时库文件又需要让别人能够正常调用,那封装成lib的格式就是一个好方法。2、编译某些工程文件时非常耗时,像UCGUI和ST官方的库时,由于文件众多,编译一次可能得1两分钟,这时可以打包成库,这时编译工程时就不会再次编译库的文件,节省不少的时间。(但同时也不能用右键Go to Definition 'XX

2017-01-20 15:16:42 737

原创 emWin - BMP图片显示

辛苦了两天,终于将emWin的ILI9341的驱动移植好了,并且修改了一点底层的驱动,让它跑起来稍微顺畅一些。偏题了。此处,主要是讲解一下如何利用emWin进行BMP图片显示。为什么要单独的将这个提出来,是因为很多客户就是利用BMP图片,进行GUI显示的。例如ICON等图标都是小BMP图片。如下,主要是如何将BMP图片,转成emWin支持的方式,最终显示到TFT屏上的。硬件准备:

2017-01-20 10:48:58 4043

转载 标准9针串口引脚定义

3.3.1.1 标准9针串口引脚定义从前面的内容中,知道了串口外形,就可以继续了解其每个引脚的定义,这是做线的基础。无论是RS-232C、RS-422,还是RS-485,串口接口的外形、尺寸都是相同的,部件间可以通用互换,但其引脚的定义却各不相同,因此要了解串口做线,首先要知道串口各引脚的定义。观察一个标准的串口,会发现串口无论是9针的标准串口物理外形(如图3.4所示),还是25针

2017-01-12 16:01:25 47837

转载 STM32F10x—DMA总结

各个寄存器作用1)      DMA_CPARx或DMA_CMARx寄存器指定外设基地址或存储器单元2)      执行一次DMA_CNDTRx寄存器的递减操作,该寄存器包含未完成的操作数目。3)      每个通道的优先权可以在DMA_CCRx寄存器中设置,有4个等级4)      外设和存储器的传输数据量可以通过DMA_CCRx寄存器中的PSIZE和MSIZE位

2017-01-12 09:38:20 3895

转载 STM32F407的串口采用DMA收发数据

环境:主机:WIN8开发环境:MDK5.13mcu: stm32f407VGT6说明:之前用STM32F103实现DMA收发串口数据,现在项目中采用STM32F407,所以将此机制移植到F4上。STM32F103上用DMA收发串口数据文章:STM32的串口采用DMA方式发送数据测试STM32的串口采用DMA方式接收数据测试

2017-01-12 09:13:40 14857 1

转载 VMWare虚拟机非正常关闭后无法启动的解决方案

这篇博文记录一个VMWare虚拟机非正常关闭后无法启动的解决方案。我们中心的网站部署在一个Windows XP的虚拟机上,但是由于电源问题,那台虚拟机所在的实体物理机总是重启,有时候就会导致虚拟机系统还没有正常关闭就被迫关机了。机器重启后,虚拟机系统总是无法正常启动,弹出类似下面的错误: Cannot open the disk ‘C:\VM-machines\Wind

2017-01-10 09:21:10 41653 7

转载 STM32操作24位AD芯片ADS1246

ADS1246是TI公司大致在2009年中期推出的24位ADC,最高采样速率可达2Ksps,其为单通道器件,与之相对应的还有ADS1247和ADS1248三通道器件,但特性并非完全一致。据TI资料介绍,ADS1246在ADS1247/ADS1248功能上做出简化,保留了其部分特性。本次设计,需要用到24位单通道转换器件,于是考虑用到ADS1246,主控制器用STM32L系列。以下为ADS1246的

2017-01-07 02:16:07 7090 1

转载 ucos进度条控制

1 进度条控件介绍 进度条通常在应用程序中用于实现虚拟化,下面的截图是设置了皮肤和没有设置皮肤时的显示效果: 没有皮肤 有皮肤 2 程序代码: (程序是参考安福莱《stm32-V5开发板STemwin教程》)#include "stm32f10x.h"#include "bsp_led.h"#include "GUI.h"#include "dis

2017-01-06 11:33:15 465

转载 STM32F4 RTC的使用

比较F1的片子对于F4的RTC来说有很大提升,F4的RTC提供了日历时钟和两个可编程闹钟中断,一个周期性可编程唤醒标志。这样很方便设置系统时间,并不会像F1的RTC那样要自己计算年月日时分秒。F4的RTC是一个独立的BCD定时计数器,系统可以自动将月份天数补偿为28、29(闰年)、30、31天。并且还可以进行夏令时补偿。由此可见RTC,下面贴出代码方便以后查看(这里特别提一下RTC_Ala

2017-01-04 17:48:08 1669

转载 STM32F的RTC

一、简介:    对于STM32F的RTC实时时钟提供了一个日历时钟,两个可编程闹钟中断和一个具有中断功能的可编程唤醒标志。由于RTC的时钟配置是在后备区域,因此在后备区域供电正常的情况下,即使是系统复位或者是从待机模式唤醒之后时间依然维持不变。下边就以RTC模块的框图为引线,对RTC的相关功能和操作做相关介绍。二、框图:    首先是时钟的选择,一般选择LSE作为

2017-01-04 17:46:55 808

转载 STM32F4——TFT-LCD原理及FSMC

TFT-LCD一、简介:    TFT-LCD即薄膜晶体管液晶显示器,依据其尺寸、分辨率和驱动芯片的不同有很多分类,下边会依据2.8寸320X240分辨率以ILI9341芯片驱动的TFT-LCD做相关介绍。二、接口:    模块采用16位并方式与外部连接,其相关接口图及信号线功能如下:    CS:TFTLCD片选信号。WR:向TFTLCD写数据。R

2017-01-04 17:44:10 4227

转载 STM32F4 RTC【使用库函数】

F4的RTC与F1的RTC有很大的差别。F1系列的RTC就是一个简单的计数器,要想获得时间,得自己计算。F4的就不需要这么麻烦了,读出来的直接就是时间。【主要特点】STM32F4的RTC是一个独立的BCD/时钟计数器。RTC提供时间日历和两路闹钟中断,一个具有中断能力的周期可编程的环形标志。他哦南方是RTC还具有管理低功耗模式的唤醒单元。RTC的秒、分、小时、日期、月、年以

2017-01-04 17:23:48 2233

转载 CCS中时间统计方法(profile)

我们以实例来介绍在CCS里如何统计程序的运行时间,内容修改自CCS的教程,程序见后面:我们将使用CCS的profiling功能来统计标准puts()函数的执行情况。1.    选择File→Reload Program。2.    选择Profiler→Enable Clock。标记“√”出现在Profile菜单Enable Clock项的旁边,该选项使能就可计算指令周期。

2017-01-04 14:52:34 4135

转载 详解μC/OS-II如何检测任务堆栈实际使用情况——即如何设置ucosii任务堆栈大小

不少屌丝同学都有类似经历吧,在使用ucosii创建任务时,关于任务堆栈大小设为多大合适搞的不清不楚,郁闷之下就随便整个数,比如就1024吧,呵呵,反正也没见得出问题,那就不多想了。        我想大多数同学都是这样做的吧。这样只是因为在一般情况下,1024确实已经足够大了,堆栈溢出的可能性很小而已。那么,如果你任务实际使用率只有很小的百分之几,一旦被你知道了,你会痛心不?我想你不痛心,

2017-01-03 11:49:32 3127

转载 STM32笔记

中断分类                                                                                                                                         STM32的EXTI控制器支持19 个外部中断/ 事件请求。每个中断设有状态位,每个中断/ 事件都有独立的

2017-01-02 01:22:43 1742

linux 嵌入式开发讲义

嵌入式开发1111111111111111111111111111111111111

2009-10-11

空空如也

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

TA关注的人

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