自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 python 操作符**与*

1.**两个乘号就是乘方,比如2**4,结果就是2的4次方,结果是16一个乘号*,如果操作数是两个数字,就是这两个数字相乘,如2*4,结果为8*如果是字符串、列表、元组与一个整数N相乘,返回一个其所有元素重复N次的同类型对象,比如"str"*3将返回字符串"strstrstr"2.如果是函数定义中参数前的*表示的是将调用时的多个参数放入元组中,**则表示将调用函数时的关键字参数放入一个字典

2015-07-06 18:13:34 644

转载 FPGA三大法则

面积与速度的互换1.速度换面积 (速度换面积的关键是高速基本单元的复用)速度优势可以换取面积的节约。面积越小,就意味着可以用更低的成本来实现产品的功 能。速度换面积的原则在一些较复杂的算法设计中常常会用到。在这些算法设计中,流水线设计常常是必须用到的技术。在流水线的设计中,这些被重复使用但是使 用次数不同的模块将会占用大量的FPGA资源。对FPGA的设计技术进行改造,将被重复使用的算法

2015-04-01 17:44:56 1033

原创 STM32学习日记7.FLASH

FLASH 寄存器结构描述了固件函数库所使用的数据结构,固件库函数介绍了函数库里的所有函数。FLASH 寄存器结构typedef struct{vu32 ACR;vu32 KEYR;vu32 OPTKEYR;vu32 SR;vu32 CR;vu32 AR;vu32 RESERVED;vu32 OBR;vu32 WRPR;} FLASH_TypeDef;typedef

2015-03-25 16:23:25 480

原创 STM32学习日记6.DMA&EXTI

DMA控制器提供7个数据通道的访问。由于外设实现了向存储器的映射,因此数据对来自或者发向外设的数据传输,也可以像内存之间的数据传输一样管理。DMA寄存器结构DMA寄存器结构DMA寄存器结构typedef struct { vu32 CCR; vu32 CNDTR; vu32 CPAR; vu32 CMAR; } DMA_Channel_TypeDef; typede

2015-03-13 16:46:40 690 1

原创 STM32学习日记5.CAN

支持CAN 协议2.0A和2.0BCAN寄存器结构typedef struct { vu32 MCR; vu32 MSR; vu32 TSR; vu32 RF0R; vu32 RF1R; vu32 IER; vu32 ESR; vu32 BTR; u32 RESERVED0[88]; CAN_TxMailBox_TypeDef sTxMailBox[3]; CAN_FIFOMa

2015-03-13 11:36:13 901

原创 STM32学习日记4.BKP

备份寄存器由10个16位寄存器组成,可用来存储20 个字节的用户应用程序数据。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。此外,BKP 控制寄存器用来管理侵入检测和RTC 校准功能BKP寄存器结构typedef struct { u32 RESERVED0; vu16 DR1; u16 RESERVED1; vu16 DR2; u16 RE

2015-03-13 10:37:10 716

原创 STM32学习日记3.ADC

ADC的分辨率为12位ADC寄存器:(19个)SR 状态寄存器CR(1、2) 控制寄存器(1、2)SMPR(1、2)采样时间寄存器(1、2)JOFR(1、2、3、4)注入通道偏移寄存器(1、2、3、4)HTR 看门狗高阀值寄存器LTR 看门狗低阀寄存器SQR(1、2、3)规则序列寄存器(1、2、3)DR(1、2、3、4)规则数据寄

2015-03-12 11:16:35 469

原创 STM32学习日记2.固件函数库

STM32F10x固件函数库被压缩在一个zip文件中。解压该文件会产生一个文件夹:STM32F10xFWLib\FWLib,下有3个子文件。1.文件夹Examplcs:对每一个STM32外设都包含有一个子文件夹,这些文件夹包含整套文件组成典型的例子,用来示范如何使用对应的外设。readme.txt:每一个例子的简单描述和使用说明。stm32f10x_conf.h:设置所有使用到外设,由

2015-03-12 08:57:07 991

原创 STM32学习日记1.命名规范

字母缩写ADC 数模转换器BKP 备份寄存器CAN 控制寄存器DMA 直接内存存取控制器EXTI 外部中断事件控制器FLASH 闪存存储器GPIO 通用寄存器I2C 内部集成电路IWDG 独立看门狗NVIC 嵌套中断向量列表控制器PWR 电源、功耗控制RCC 复位与电路控制器RTC 实时时钟

2015-03-11 17:16:55 768

转载 printf()的标志

-左对齐+有符号的值若为正,则显示带加号的符号;若为负,则带减号的符号(空格)有符号的值若为正,则显示带前道空格(但是不显示符号);若为负,则带减号符号,+标志会覆盖空格标志#使用转换的可选形式。若为%o格式,则以0开始;若为%x或%X格式,则以0x或0X开始。对于所有的浮点形式,#标志了即使不跟如何数字,也打印一个小数点字符。对于%g和%G格式,它防止尾随零被删除。

2015-03-06 16:54:40 800

原创 C语言不经常用的东西

#undif这条预处理指令用于移除一个宏#运算符利用宏参数创建字符串##运算符把两个语言符号组合成单个语言符号...和__VA_ARGS__可变宏

2015-03-06 11:18:32 417

转载 C语言函数

int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9')返回非0值,否则返回0int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0int iscntrl(int

2015-03-04 10:13:04 444

转载 野指针

//一个造成“野指针”的典型例子unsigned char *Functions(void){ unsigned char Number = 0; //函数内的局部变量 unsigned char *p = &(Number); //指向该局部变量的指针 …… return p; //一个野指针诞生了}很多原因都可以造成“野指针”,对于初学者来说,如果试图采用背公式的方法记录下所

2015-03-03 17:07:44 501

转载 大端对齐与小端对齐

地址绑定技术,在概念上,等效于联合体 union,例如://联合体实现地址绑定union Example{ unsigned long dNumber; unsigned char Array[4];}Data;在这个联合体Example 中,unsigned long 型变量dNumebr 和unsigned char 型数组Array[]拥有同样的起始地址

2015-03-03 17:03:13 1521

转载 地址绑定与“偷天换日”

指针的存储本质是 unsigned int 型变量。因此,我们可以将一个指针还原为普通变量,甚至可以将一个普通整型变量强行转换为一个指针:unsigned int Number = 0; //普通整型变量unsigned int *p = NULL; //普通指针p = (unsigned int *)Number; //青蛙变王子Number = (unsigned int

2015-03-03 16:51:52 324

转载 如何绕过const限定, “偷天换日”修改这一本不应该被 修改的变量。

指针常量、全局变量、指针变量、不应该被修改的指针变量指针常量 = 普通整数强制转化为某一个类型的指针例如: ((unsigned int *)0x004B)全局变量 = (*(指针常量))如果试图采用这种方式强行将某一MemorySpace空间征用做(*((unsigned int *)0x004B))就是一个unsigned int型的变量,如果我们非要给这个变量加一

2015-03-03 16:48:24 585

转载 如何动态的建立大小可变的一维数组

动态创建可变大小的一维数组,其关键在于正确计算数组所需的空间大小。假设,我们要创建一个 float型的数组,该数组的大小由变量 n 来动态设定://动态创建一维数组float *pArr = (float)malloc(sizeof(float) * n);if (pArr == NULL) //检查空间是否分配成功{ //这里插入空间申请失败的处理代码}访问数组

2015-03-03 16:34:35 999

转载 如何动态的建立大小已知的二维数组(多维数组)

动态创建一个大小已知的二位数组, 首先, 我们需要利用 typedef 建立一个自定义类型。通过该类型我们可以描述二维数组的信息。假设我们要创建一个 4*10 的 int 型二维数组,则对应的代码为://建立自定义类型,描述而维数组信息typedef int ARRAY[4][10];接下来, 我们声明一个指向该类型二维数组的指针——也就是一个“指向数组的指针”:

2015-03-03 16:31:06 610

转载 在 ICC 中如何正常的进行动态内存分配

在 ICC 中,我们是无法直接使用 C 语言基本库函数 malloc()和 free()进行动态内存分配和释放——即便包含了 C 语言标准库“ stdlib.h”也是一样。这是因为, 这里的动态内存分配是一种堆式分配。 为了节省空间开支, ICC没有为我们开辟默认的堆空间用于动态内存分配。使用这一功能,我们需要人工添加一个(或多个)堆。    在 ICC 提供的 C 语言标

2015-03-03 16:28:47 662

转载 指针变量的定义

指针变量与一般变量的定义类似,形式如下:数据类型 [存储器类型1] * [存储器类型2] 标示符;[存储器类型1]表示被定义为基于存储器的指针,无此选项时,被定义为一般指针。这两种指针的区别在于它们的存储字节不同。一般指针在内存中占用3个字节,第一个字节存放该指针存储器类型的编码(在编译时由编译模式的默认值确定),第二个字节和第三个字节分别存放该指针的高位和低位地址偏移量。存储器类型的编码

2015-03-02 09:33:07 537

转载 指针概念综述

1.变量的地址就是变量的指针,用于存储地址的变量称为指针变量。当将一个变量的地址赋给某一个指针变量时,称这个指针变量指向该变量。此时,既可用变量名直接存取变量的值,也可用指针变量间接存取变量的值。2.C语言中的数组变量、字符串数组变量、字符串、结构体变量、共用体变量、枚举型变量,甚至函数名及函数的形参以及文件等都用指针,可用定义相应额指针变量存放这些指针。同样有两种方法存放变量的值:用变量名直

2015-02-28 16:31:47 405

转载 指向函数的指针

指向函数的指针的一般形式为:类型声明符   (*指针变量名)();“类型声明符”表示被指函数的返回值的类型;“(*指针变量名)”表示 “*” 后面的变量是定义的指针变量;“()”表示指针变量所指的是一个函数。好处:提高程序的通用性和可适应性。C语言程序是由若干个函数组成的,每个函数在编译链接后总是占用一段连续的内存区,而函数名是该函数所占内存区的入口地址,每

2015-02-28 15:12:32 411

转载 基础的重要性(程序员之路)

学习编程有几年了,感觉走了不少弯路,而不少的学弟学妹又在重蹈我当初的覆辙,不免有些痛心。最近在网上也看了许多前辈们的经验建议,再结合自己的学习经历在这里谈谈基础的重要性,希望帮助大家少走些弯路。什么是基础呢?就是要把我们大学所学的离散数学,算法与数据结构,操作系统,计算机体系结构,编译原理等课程学好,对计算机的体系,CPU本身,操作系统内核,系统平台,面向对象编程,程序的性能等要有

2015-02-27 16:20:45 450

转载 基本的优化规则

对代码进行优化处理时,需要考虑一些基本的优化规则:1.在代码优化之前,先要有一个同一代码的可靠的、非优化的版本。2.应利用算法优化措施,而不是通过提升系统特性来获取最大限度的性能提升。3.不要将代码优化与汇编语言实现混为一谈。4.在试图用汇编语言重写程序之前,先查看一下编译器生成的汇编代码并估算它的效率。5.如果编译器生成的汇编语言列表虽然显得很不错,但是程序运行起来仍然很慢,

2015-02-27 16:12:00 367

STM32最新固件库v3.5

STM32最新固件库v3.5

2015-03-13

空空如也

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

TA关注的人

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