自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (6)
  • 收藏
  • 关注

转载 串口中断接收方式详细比较

串口调试,以前也调过,只是没这么深入的琢磨过,最近又在弄,感觉串口很基本,也很有学问,要是出现BUG可能导致系统奔溃。。。现在贴出来,欢迎拍砖指正!!!  本例程通过PC机的串口调试助手将数据发送至STM32,STM32通过SP3232芯片采用中断接收方式完成,然后接收数据后将所接收的数据又发送至PC机,具体下面详谈。。。   实例一: void USART1_IRQHandler(u

2015-10-08 09:38:19 1720

原创 STM32的ADC的DMA方式

之前了解了ADC的单独使用,由于AD的采样和处理对CPU的消耗较大,单独使用AD会对CPU 的很有要求void Adc_Init(void){ ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA

2015-09-08 17:01:48 1635

转载 STM32系统时钟配置

一、在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①HSI是高速内部时钟,RC振荡器,频率为8MHz。②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③LSI是低速内部时钟,RC振荡器,频率为40kHz。④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤PLL为锁相环倍频

2015-08-28 09:31:31 1092

转载 STM32 CAN

CAN  是 Controller Area Network  的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量

2015-08-24 11:32:23 871

转载 STM32 SPI

SPI  是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola首先在其 MC68HCXX 系列处理器上定义的。 SPI 接口主要应用在  EEPROM, FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时

2015-08-24 11:31:16 1250

转载 STM32 DMA

DMA,全称为:Direct Memory Access,即直接存储器访问,DMA  传输将数据从一个地址空间复制到另外一个地址空间。当  CPU  初始化这个传输动作,传输动作本身是由DMA  控制器  来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA  传输对于高效能嵌入式系统算法

2015-08-24 11:30:20 575

转载 STM32的DAC

STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的DAC。DAC 可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合使用。DAC工作在 12 位模式时,数据可以设置成左对齐或右对齐。DAC 模块有 2 个输出通道,每个通道都有单独的转换器。在双DAC 模式下,2 个通道可以独立地进行转换,也可以同时进行转换并同步地更新 2 个通道的输出。DAC 可以

2015-08-24 11:29:39 2318

转载 STM32的ADC简介

STM32 拥有 1~3 个 ADC (STM32F101/102 系列只有 1 个 ADC) ,这些 ADC 可以独立使用,也可以使用双重模式(提高采样率)。STM32 的 ADC 是 12 位逐次逼近型的模拟数字转换器。它有 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。 ADC 的结果可以左对齐或右对齐方式存储在 16 位数

2015-08-24 11:28:41 5527 1

转载 STM32的RTC实时时钟

STM32 的实时时钟(RTC)是一个独立的定时器。STM32 的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC 模块和时钟配置系统(RCC_BDCR 寄存器)是在后备区域,即在系统复位或从待机模式唤醒后 RTC 的设置和时间维持不变。但是在系统复位后,会自动禁止访问后备寄存器和 RTC,以防止对后备区

2015-08-24 11:26:44 2231

转载 STM32的GPIO

控制  STM32 开发板上的两个 LED 实现一个类似跑马灯的效果,在固件库中,GPIO 端口操作对应的库函数函数以及相关定义在文件stm32f10x_gpio.h 和 stm32f10x_gpio.c 中。STM32 的 IO 口相比 51 而言要复杂得多,所以使用起来也困难很多。 首先 STM32 的 IO 口可以由软件配置成如下 8 种模式:1、输入浮空2、输入上拉

2015-08-24 11:24:39 558

转载 Cortex-M3处理器的舞台

ST(意法半导体)为了方便用户开发程序,提供了一套丰富的 STM32 固件库。固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API) 。固件库将这些寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用,大多数场合下,你不需要去知道操作的是哪个寄存器,你只需要知道调用哪些函数即可。ARM 公司为了能让不同的芯片公司生产的 Corte

2015-08-24 11:21:17 559

转载 STM32官方固件库简介

ST(意法半导体)为了方便用户开发程序,提供了一套丰富的 STM32 固件库。固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API) 。固件库将这些寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用,大多数场合下,你不需要去知道操作的是哪个寄存器,你只需要知道调用哪些函数即可。ARM 公司为了能让不同的芯片公司生产的 Corte

2015-08-24 11:20:05 3659

转载 STM32系统架构

这里所讲的 STM32 系统架构主要针对的 STM32F103 这些非互联型芯片STM32 主系统主要由四个驱动单元和四个被动单元构成。四个驱动单元是:内核 DCode 总线; 系统总线;通用 DMA1;通用 DMA2;四被动单元是:AHB 到 APB 的桥:连接所有的 APB 设备;内部 FlASH 闪存;内部 SRAM;FSMC;下面我们具体

2015-08-24 11:18:55 2563

转载 STM32时钟系统

众所周知,时钟系统是 CPU 的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。   STM32 的时钟系统比较复杂,不像简单的 51 单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为什么 STM32 要有多个时钟源呢?  因为首先STM32 本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率,比如看门狗以及 RTC 只需要几十 k

2015-08-24 11:18:11 593

转载 STM32中断优先级

CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。但 STM32 并没有使用 CM3 内核的全部东西,而是只用了它的一部分。STM32 有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 16 级可编程的中断优先级。而我们常用的就是这 68 个可屏蔽中断,但是 STM32 的 68 个可屏蔽中断,在 STM3

2015-08-24 11:17:16 623

转载 STM32串口简介

串口作为 MCU 的重要外部接口,同时也是软件开发重要的调试手段, 其重要性不言而喻。STM32 的串口资源相当丰富的,功能也相当强劲。ALIENTEK 战舰 STM32 开发板所使用的 STM32F103ZET6 最多可提供 5 路串口,有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持 LIN、 支持调制解调器操作、 智能卡协议和 IrDA SIR ENDEC 规范、具有 DMA等。

2015-08-24 10:54:42 1866

转载 STM32外部中断

STM32  IO 口中断的一些基础概念。STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处。STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19 个外部中断为:线 0~15:对应外部 IO 口的输入中断。线 16:连接到 PVD 输出。

2015-08-24 10:53:43 553

转载 STM32独立看门狗

STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) 。在键值寄存器(IWDG_KR)中写

2015-08-24 10:48:12 682

转载 STM32窗口看门狗

窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位 (WWDG->CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。在递减计数器达到窗口配置寄存器(WWDG->CFR)数值之前,如果 7 位的递减计数器数值(在控制寄存器中)被刷新,   那么也将产生一个 M

2015-08-24 10:46:43 773

转载 STM32的通用定时器

STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器。STM32 的通用定时器是一个通过可编程预分频器(PSC)驱动的 16 位自动装载计数器(CNT)构成。STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。   

2015-08-24 10:43:56 990

转载 STM32定时器PWM输出

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多

2015-08-24 10:40:54 1749

转载 STM32定时器输入捕获

通用定时器作为输入捕获的使用。我们将用 TIM5 的通道 1 (PA0)来做输入捕获,捕获 PA0 上高电平的脉宽(用 WK_UP 按键输入高电平),通过串口打印高电平脉宽时间输入捕获简介输入捕获模式可以用来测量脉冲宽度或者测量频率。 STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。STM32 的输入捕获,简单的说就是通过检测 TIMx_CH

2015-08-24 10:39:31 3004

转载 SPI及其FPGA实现

SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。  SPI概述  SPI:高速同步串行口。3~4线接口,收发独立、可同步进行.  SPI,是英语Serial Per

2015-04-28 16:30:09 26420 1

转载 无刷电机之有感PID调试心得

无刷有感电机PID调试心得一、换相脉宽采集的方法 通常来讲,换相脉宽的采集精度越高越好,但也受MCU内部资料的限制,如果有多余的16位的定时器,那就不用犹豫了,直接用它来作换相脉宽的计数吧,精度可高达1us,要是没有这个16位的定时器那就只能用8位的定时器然后再在定时器中断里面自己人为累计计数值咯。二、PID的运算时间如何定?1、换相6次后运行一次PID 对于无

2014-12-03 15:01:51 12953

转载 PID算法原理

反馈回路基础  一个控制回路包括三个部分:  系统的传感器得到的测量结果 控制器作出决定通过一个输出设备来作出反应控制器从传感器得到测量结果,然后用需求结果减去测量结果来得到误差。然后用误差来计算出一个对系统的纠正值来作为输入结果,这样系统就可以从它的输出结果中消除误差。  在一个PID回路中,这个纠正值有三种算法,消除目前的误差,平均过去的误差,和透过误差的改变来预测将来

2014-12-03 15:01:07 4675

转载 温度控制的PID算法的C语言程序

#include#includeintrins.h> #includemath.h> #includestring.h> struct PID { unsigned int SetPoint; // 设定目标 Desired Value unsigned int Proportion; // 比例常数 Proportional Const unsigned int Inte

2014-12-03 14:50:01 10370 1

转载 基于FPGA的ds18b20温度传感器设计程序

end               else if (step == 46)               begin                 bit_valid                    step                         state                      else if (step == 47)

2014-11-20 19:23:14 11415

转载 FPGA设计中RS232串口的Verilog实现(RX控制器)

一.RX控制器(接收数据)的Verilog实现对串口来讲,TX和RX方向数据传输的格式都是一样的。毕竟对于参与传输的双方来讲,一方是TX,对应的一方就是RX。对于TX方向,串口控制器要根据波特率产生TX方向的时钟(TX_CLK),其时钟的相位是没有要求的,由设计本身决定。而在RX方向,时钟(RX_CLK)的生成则有所不同。首先时钟频率也是根据波特率产生,这对于TX和RX都是一样的,

2014-11-20 18:43:47 3494

转载 FPGA设计中RS232串口的Verilog实现(TX控制器)

RS232串口是一种简单的异步串行通讯方式,虽然传输速率不太高,但因为通讯协议简单,实现起来非常容易,所以在对数据带宽要求不太高的场合得到了非常广泛的应用。今天我们在这里讨论一下RS232串口通讯的Verilog实现。一.硬件电路:下面是一个典型的计算机与串口设备的连接示意图。RS232采用DB9或DB25的接口。最简单的连接方法只需要TXD和RXD两根信号线分别传输和接收数据

2014-11-20 18:42:22 9429

转载 基于FPGA的DS18B20控制程序设计及其Verilog实现(三)

三,DS18B20的温度测量控制在该系统中,1-Wire总线上只存在1个DS18B20,在控制DS18B20进行温度测量的时候,根据1-Wire总线的特性和DS18B20的控制要求,可以采用相对简单的控制流程。下面是控制流程图:我们用状态机来实现这个控制流程。从控制流程图可以看到,系统从空闲状态到读出温度数据,总共有8个大的步骤。而其中2和6,3和7是相同的,用状态机实现的

2014-11-20 18:41:15 8303 2

转载 基于FPGA的DS18B20控制程序设计及其Verilog实现(二)

(2012-05-21 08:40:04)转载▼标签: 杂谈 三,1-Wire总线上按Byte读写的Verilog实现及DS18B20的Byte操作上面用简单状态机实现了1-Wire总线上单bit数据的读写操作。在此基础上,可以通过状态机嵌套的方法实现按Byte的读写操作。实现Byte读写控制的状态机,控制8b

2014-11-20 18:39:16 4231

转载 基于FPGA的DS18B20控制程序设计及其Verilog实现 (一)

基于FPGA的DS18B20控制程序设计及其Verilog实现 (一)  (2012-05-20 22:20:41)转载▼标签: 杂谈 一,总体介绍DS18B20是一个1-wire总线,12bit的数字温度传感器,其详细的参数这里不做具体的介绍,只讨论其基于Verilog的控制程序的设计。

2014-11-20 18:37:48 6139

转载 Linux操作系统文件系统基础知识详解

一 、Linux文件结构   文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。  目录提供了管理文件的一个方便而有效的途径。  Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。                      /根目录          

2014-11-19 15:41:54 1737

转载 操作系统文件管理

在现代计算机系统中,要用到大量的程序和数据,因内存容量有限,且不能长期保存,故而平时总是把它们以文件的形式存放在外存中,需要时再随时将它们调入内存。如果由用户直接管理外存上的文件,不仅要求用户熟悉外存特性,了解各种文件的属性,以及它们在外存上的位置,而且在多用户环境下,还必须能保持数据的安全性和一致性。显然,这是用户所不能胜任、也不愿意承担的工作。于是,取而代之的便是在操作系统中又增加了文件管理功

2014-11-19 15:38:34 1316

转载 设备管理

IO控制方式在整个IO控制方式的发展过程中,始终贯穿着这样一条宗旨:即尽量减少主机对IO控制的干预,把主机从繁杂的IO控制事务中解脱出来,以便更多地去完成数据处理任务。程序IO方式处理机对IO采用程序IO方式,即采用“忙――等待“方式,在处理机向控制器发出一条IO指令启动输入设备输入数据时,要同时把状态寄存器中的忙闲标志置为1.然后便不断的循环测试,直到标志为0.当

2014-11-19 15:16:57 514

转载 地址映射与共享

这次实验做的着实好纠结。。想来也不是说有多难,关键是给的资料太少了,尤其是移植到0.11下那一步,指导书就没几句话,我左看右看也没搞明白到底要干什么。。赵炯同志的那本书又好多要看的,总是看不进去。。不过静下心去看的话还真的能获取好多有用的信息,加上各种百度Google,也不算太难,关键是查资料实在是好费时间啊。。。由于是第一次直接在代码中对内存操作,一会儿虚拟,一会线性,一会物理的,遇到了好多问题

2014-11-19 15:07:27 700

转载 s3c6410地址映射

1.1   寻址空间ARM处理器为32bit处理器,内部32bit地址总线理论寻址空间为4GB,对于6410来说,寻址空间的高2GB在内部为保留(reserved),低2GB(0x0~0x7FFFFFFF)可划分为2部分:主存储区(main memory area)和外设区(peripheral area)。1.2   主存储空间(Main memory area)

2014-11-19 15:06:36 510

转载 操作系统—存储管理

突然发现自己好久没写博客了,前段时间忙着实习的笔试,看了很多方面的书,感觉有点凌乱,这几天再重新温习一下,写一下博客就当是做做笔记,记录一下学习的过程吧!下面本上是属于知识点的归纳,基本上本博客里面的概念很多都是来自于其他博客,在这里只是个自己做一个归纳和总结: 1.http://blog.csdn.net/lwlliang/article/details/6212262 2.ht

2014-11-18 22:27:11 843

转载 实时操作系统任务调度

最近看了一些实时操作系统的源码,关于任务调度是实时操作系统的重要组成部分,但是何时发生调度,怎样才能发生调度却不是非常的清晰,书中一本而言所说的都是“如果有更高优先级任务就绪,就会发生调度”,这会让很多的读者产生很大的歧义:在当前的任务中,并没有关于就绪表等全局变量的访问,当前的任务也有自己的堆栈空间,我并不知道是否有更高优先级的任务就绪,之所以产生这些疑惑是没有搞清楚什么时候发生调度,怎

2014-11-18 18:55:00 6739

转载 任务调度

ucos的任务调度思想是:“近似的让每时每刻让优先级最高的就绪任务处于运行状态”。在具体做法上,他在系统或用户任务调用系统函数及执行中断服务程序结束时来调用调度器,以确定应该运行的任务并运行它。        1,调度器的主要工作      在多任务系统中,令CPU中止当前正在运行的任务转而去运行另一个任务的工作叫做任务切换,而按某种规则进行任务切换的工作叫做任务调度。  

2014-11-18 16:11:16 1104

SPI通讯协议

同步串行外设接口(SPI)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。 

2015-08-31

huffmanCompress哈弗曼压缩与解压缩

huffmanCompress哈弗曼压缩与解压缩,一个压缩工具

2014-08-28

uCos2_os_api.c

uCos2操作系统,的系统源码中API函数的.C文件,基于uC/OS基本函数库开发的能够最大限度满足上层系统需求的API

2014-08-28

模拟电路ppt

这个是模拟电路教学用的的ppt资源,有助于自学或复习用很珍贵的哦

2012-09-25

模拟电路资源

这个是模拟电路教学用的的ppt资源,有助于自学或复习用很珍贵的哦

2012-09-25

空空如也

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

TA关注的人

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