自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程同步和异步--详解

进程同步用来实现程序并发执行时候的可再现性。一.进程同步及异步的概念1.进程同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事.就像早上起床后,先洗涮,然后才能吃饭,不能在洗涮没有完成时,就开始吃饭.按照这个定义,其实绝大多数函数都是同步调用(例如sin,isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那

2017-10-26 16:06:08 8042

转载 RTOS学习之:消息队列

本章节为大家讲解 FreeRTOS 的一个重要的通信机制----消息队列,初学者要熟练掌握,因为消息队列在实际项目中应用较多。 消息队列的概念及其作用消息队列就是通过 RTOS 内核提供的服务,任务或中断服务子程序可以将一个消息(注意,FreeRTOS消息队列传递的是实际数据,并不是数据地址,RTX,uCOS-II 和 uCOS-III 是传递的地址)放入到队列。同样,一个或者

2017-10-20 11:26:52 2790 2

原创 STM32学习之:USART中断方式

前面我们接收了串口通信的查询方式,现在我们来介绍中断方式。   步骤一:初始化GPIOGPIO_InitTypeDef GPIO_InitStructure; /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin

2017-10-20 10:51:08 4571

转载 STM32F103的普通定时器中断问题,存在开机后初始化,一打开允许中断,定时器立刻进入中断函数一次

问题:存在开机后初始化,在TIM3_Int_Init()里面,一打开允许中断函数TIM_ITConfig(),定时器立刻进入中断函数一次。只进一次。初始化函数最后已经关闭定时器:TIM_Cmd(TIM3, DISABLE);  //暂关闭TIMx外设。将这个函数提到初始化最前面也没用。解决方法:总结:应该是TIM_TimeBa

2017-10-19 14:07:13 1024

原创 STM32学习之:定时器中断

定时器中断  STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器。在本章中,我们将利用 TIM3 的定时器中断来控制 DS1 的翻转,在主函数用 DS0 的翻转来提示程序正在运行。选择难度适中的通用定时器来介绍。1、 STM32 通用定时器简介 

2017-10-19 10:48:57 3353

转载 C语言常见的编译错误

1、 在函数 ‘transform’ 中:7: 错误:expected ‘;’ before ‘{’ token    解释:‘{’之前的某个语句缺少分号‘;’; 2、 在函数 ‘Insert_SqList’ 中:6: 错误:‘listsize’ 未声明 (在此函数内第一次使用)    解释:‘listsize’这个变量未声明; 3、 在函数 ‘Ha

2017-10-19 09:35:30 1972

原创 STM32学习之:NVIC的初步理解

1  对NVIC的理解      CM3支持硬件中断嵌套,分为抢占式优先级和亚优先级,使用规则主要有,抢占优先级高级别的可以打断低级别的,同一级别的抢占优先级同时发生时,亚当优先级高的先发生中断,若是相同,则按硬件排列顺序发生。若是有一个亚优先级正在执行中断,同一级别的其它亚优先级发生时,则先挂起,等此中断执行完再执行!     从库函数中找到优先级分组模式:#define NVIC_

2017-10-18 21:16:51 787

转载 转:程序员35岁前成功的12条黄金法则 以资激励

Jack : 先不讨论什么是成功,首先看看别人是怎么样的成功的法则的.^_^,不考虑结果,最起码做事情的准则要按照人家说的来啊.反正又不是骗人的.^_^第一章:一个目标  一艘没有航行目标的船,任何方向的风都是逆风  1、你为什么是穷人,第一点就是你没有立下成为富人的目标  2、你的人生核心目标是什么?  杰出人士与平庸之辈的根本差别并不

2017-10-18 20:28:20 2490

转载 RTOS学习之:多任务编程要点

一.   分析阶段1.  需求分析,予以文档描述;2.  一些初始化问题,探究需求分析中的关键点;3.  解决时序问题,系统中算法的分析;4.  决定使用RTOS,依赖于时间响应和任务数量;5.  划分任务,确定系统所需的任务和模块;6.  系统间通信,消息机制是最优的方法之一;7.  共享数据处理,创建独立的模块;8.  结论,绘制系统设计图。二.   编码实

2017-10-18 18:03:38 1390 1

原创 STM32学习之:事件标志组

为什么要使用事件标志事件标志组是实现多任务同步的有效机制之一。也许有不理解的初学者会问采用事件标志组多麻烦,搞个全局变量不是更简单?其实不然,在裸机编程时,使用全局变量的确比较方便,但是在加上 RTOS 后就是另一种情况了。 使用全局变量相比事件标志组主要有如下三个问题: 使用事件标志组可以让 RTOS 内核有效地管理任务,而全局变量是无法做到的,任务的超时等机制需要用户

2017-10-18 17:55:02 5800

原创 智商之外的“商”

先介绍一下关于“商”的:除智商,情商外,还可包括:德商MQ(moral quotient)、逆商AQ(adversity quotient)、心商MQ(mental quotient)、胆商DQ(daring quotient)、财商FQ(fortune quotient)、志商WQ(will quotient)、灵商SQ(spiritual quotient)、健商HQ(health

2017-10-18 17:50:21 562

原创 C语言再学习之:局部变量,局部静态变量,全局变量和全局静态变量的区别

一般全局变量存放在数据区,局部变量存放在栈区, 动态变量存放在堆区,函数代码放在代码区。一般全局变量存放在数据区,局部变量存放在栈区, 动态变量存放在堆区,函数代码放在代码区。 --------------------------------------------------------------- 栈区是普通的栈数据结构,遵循LIFO后进先出的规则,局部变

2017-10-18 17:30:58 1194

转载 STM32学习之:定时器 软件计时

stm32定时器实现60秒定时秒表#include "led.h"#include "delay.h"#include "key.h"#include "sys.h"#include "lcd.h"#include "usart.h"#include "timer.h"#include "beep.h" extern u32 sec; int

2017-10-18 16:58:43 13255 4

转载 STM32学习之:定时器程序设计探讨

假设使用定时器3每1毫秒定时;保存至SD卡的函数是StartSave();第一种情况:定时器快,主循环慢1、代码设计1(错误的设计)[cpp] view plain copyint cnt = 0; //计数  //TIM3中断处理函数  void TIM3_IRQHandler(void)  {      if(TIM_GetITStatus(TIM3,TIM_I

2017-10-18 14:15:52 989

原创 STM32学习之:Context—M3简介

Cortex-M3概览(1)简介     Cortex-M3是一个 32位处理器内核。内部的数据路径是 32位的,寄存器是 32位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性, CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工

2017-10-18 11:30:36 3281 1

转载 STM32学习之:定时器简介

本文为STM32定时器设计大体简介。 一、定时器简介1、时钟来源2、定时器结构(以基本定时器为例)二、基本定时器的编程方法1、基本定时器的寄存器2、例程/*** @brief 定时器6的初始化,定时周期0.01s* @param 无* @retval 无*/void TIM6_Init(void){TIM_TimeBa

2017-10-18 11:26:36 517

转载 STM32学习之:定时器时间计算

假设 系统时钟是72Mhz,TIM1 是由PCLK2 (72MHz)得到,TIM2-7是由 PCLK1 得到关键是设定 时钟预分频数,自动重装载寄存器周期的值/*每1秒发生一次更新事件(进入中断服务程序)。RCC_Configuration()的SystemInit()的RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2表明TIM3CLK为

2017-10-17 21:10:22 1668

原创 为什么我不推荐大家去外包公司

其实大家每天心里都像明镜一样的明白“低技术含量的外包没有前途”,好多人都认为外包没有技术,其实这种思想不对,国外有大量的高端技术外包业务等着我们干,但是反问一句“你们能干吗?”,现在大部分的公司都是平均每个项目开发4个月,干完就再转一个组再做别的项目,从Java .NET C C++ 到你们没有听说过的RPG,一个有着7年开发经验的外包人员可以说自已会十几种开发语言做过几十个case ,但是我们不

2017-10-16 18:18:52 2039

原创 STM32学习之:定时器时间计算

/*每1秒发生一次更新事件(进入中断服务程序)。RCC_Configuration()的SystemInit()的RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2表明TIM3CLK为72MHz。因此,每次进入中断服务程序间隔时间为((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+99

2017-10-16 17:53:21 3675

转载 编程的首要原则

刘未鹏的 blog 上写了一篇 编程的首要原则(s)是什么? ,很有意思。你们认为编程的首要原则是什么?作为我的学习原则的一个实践:学习一项知识,必须问自己三个重要问题:它的本质是什么。它的第一原则是什么。它的知识结构是怎样的。很长时间过去了,这个问题到现在还有人回复,我得到了一大堆有意思的答案,忍不住翻译过来与大家分享:1.  获得最多认同

2017-10-16 10:49:20 322 2

转载 操作系统原理学习(三)

一、操作系统概述1.1 操作系统的基本概念在信息化时代,软件被称为计算机系统的灵魂。而作为软件核心的操作系统,已经与现代计算机系统密不可分、融为一体。计算机系统自下而上可粗分为四个部分:硬件、操作系 统、应用程序和用户(这里的划分与计算机组成原理的分层不同)。操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。硬件,如中央处理器、内存、输入/输

2017-10-13 15:15:04 1418

转载 操作系统原理学习(二)

1.进程(process)和线程(Thread)    进程是具有一定独立功能的程序,是关于某个数据集合上的一次运行活动。进程是系统进行资源分配和调度的一个独立单位。    线程是进程的一个实体,是cpu调度和分派的基本单位,是比进程更小的能独立运行的基本单位。线程基本上自己不拥有系统中资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的

2017-10-13 15:11:43 330

转载 操作系统原理学习(一)

1. 操作系统的资源管理技术资源管理解决物理资源数量不足和合理分配资源这两个问题。  操作系统虚拟机为用户提供了一种简单、清晰、易用、高效的计算机模型。虚拟机的每种资源都是物力资源通过复用、虚拟和抽象而得到的产物。 虚拟机提供进程运行的逻辑计算环境。从概念上来说,一个进程运行在一台虚拟机上,可以认为一个进程就是一台虚拟机,一台虚拟机就是一个进程。复用:空分复用共

2017-10-13 14:58:29 649

原创 C语言再学习之:指针详解(2)

要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧:[cpp] view plain copy

2017-10-12 20:38:25 275

原创 C语言再学习之:指针详解(1)

指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概

2017-10-11 19:30:56 456

原创 C语言再学习之:数据类型整理

C 语言包含的数据类型如下图所示:一、数据类型与“模子”short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。怎么去理解它们呢? 举个例子:见过藕煤球的那个东西吧?(没见过?煤球总见过吧)。那个东西叫藕煤器,拿着它在和好的煤堆里这么一咔,一个煤球出来了。半径12cm,12 个孔。不同型号的藕煤器咔出来的煤球大小不一样

2017-10-10 17:17:50 217

原创 STM32学习之:stm32中C语言的数据类型

STM32——C语言数据类型在编程过程中,不同的CPU,其数据类型的意义各不相同,所以一定要注意相应变量数据类型的定义和转换,否则在计算中可能会出现不确定的错误。(一)C语言中的种类数据整型:int short long实型:float doubleSTM32中的数据类型非常的多,常用的变量,文件中的定义如下:    /* exact-width s

2017-10-10 16:10:27 1429

原创 STM32之IO输出方式理解

下面是开漏和推挽的区别:开漏输出就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候。推挽输出就是单片机引脚可以直接输出高电平电压。低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上拉电阻。但如果输出端可能会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚。

2017-10-07 09:51:26 1271

原创 SPI写解析

char fasong(char byte){while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);SPI_I2S_SendData(SPI2, byte);                // 这里发送while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE)

2017-10-06 09:27:53 1059

原创 STM32研发思考

首先要保证硬件正确,比如该通的要通,不该通的不能通;电源、电平正确,等等。 硬件正确的前提下,再看软件。 正常的芯片,只要提供了正确的条件,芯片就会正常反应。 具体到这个芯片,条件就是指CPU发命令了没有?命令字对不对?满足时间要求吗?等等。 出了问题,就要一步一步地查这些问号。

2017-10-05 11:25:06 465

转载 SPI读写总结

SPI协议是主从模式:从机不主动发起访问,总是被动执行操作。CSN:片选信号。SCK:时钟信号。MOSI:master output slave input,即主机输出从机输入。可以理解主机写从设备。MISO:master input slave output,即主机输入从机输出。可以理解主机读从设备。SPI全称:Serial Peripheral interface,即串

2017-10-04 16:00:59 1551

ISO14229-2013全系列.rar

ISO14229包括所有总线以及应用点的协议详解;2013版

2021-11-18

dsp开发的原版专业基础教程

内容包括:dsp入门、dsp硬件、dsp接口、dsp应用、dsp中的adc、dsp中的dac、导论、快速傅里叶变换、如何选择dsp处理器、数据取样系统、数字滤波器、硬件设计技术、用dsp设计3g基站等等专业性很强的文档。。。请需要的同行下载,谢谢。

2017-04-13

空空如也

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

TA关注的人

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