2013年9月24日

stm32f4xx 的IWDG使用的一般步骤

摘要: 需要注意的是: STM32系列的MCU内部的RC频率会在30kHz到60kHz之间变化。此外,即使RC振荡器的频率是精确的,确切的时序仍然依赖于APB接口时钟与RC振荡器时钟之间的相位差,因此总会有一个完整的RC周期是不确定的。stm32f10x,通过对LSI进行校准可获得相对精确的看门狗超时时间。但是在stm32f4 中并没有对它校准的说明。通常我们在估算的时候,以 40Khz 的频率来计算 1)取消寄存器写保护(向 IWDG_KR 写入 0X5555) 通过这步,我们取消 IWDG_PR 和 IWDG_RLR 的写保护,使后面可以操作这两个寄存器,设置 IWDG_PR 和 IWDG... 阅读全文

posted @ 2013-09-24 16:28 イケメンおっさん_汪汪 阅读(835) 评论(0) 推荐(0) 编辑

2013年9月23日

stm32f4xx 的EXTI使用的一般步骤

摘要: 使用 IO 口外部中断的一般步骤:1)初始化 IO 口为输入。2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。3)初始化线上中断,设置触发条件等。4)配置中断分组(NVIC),并使能中断。5)编写中断服务函数。基础知识略过,第一步.配置 GPIO 与中断线的映射关系的函数1 void SYSCFG_EXTILineConfig(uint8_t EXTI_PortSourceGPIOx, uint8_t EXTI_PinSourcex)配置实例:1 void SYSCFG_EXTILineConfig(uint8_t EXTI_PortSourceGPIOI, uint8_t EX 阅读全文

posted @ 2013-09-23 16:13 イケメンおっさん_汪汪 阅读(1131) 评论(0) 推荐(1) 编辑

2013年9月12日

STM32F4xx---EXTI 外部中断

摘要: 软件环境:MDK470a硬件环境:STM32F4-Discovery。按键B1连接在F4芯片的PA0引脚。当按键按下时,引脚电平被拉底。功能描述:按压按键B1时,触发外部中断。进入中断处理函数后,通过串口发送消息。实现步骤:1、打开PA时钟,设置PA0引脚为输入。void EXTI_GPIO_Congig(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENAB 阅读全文

posted @ 2013-09-12 16:16 イケメンおっさん_汪汪 阅读(457) 评论(0) 推荐(0) 编辑

数组和指针 到 存储类(1)

摘要: C Primer Plus中 ok,11.1.1在程序中定义字符串三、数组和指针 首先看下面的小程序: 1 #include 2 3 int main(void) 4 { char m4[] = "this is amzing"; 5 char *m3 ="yeah,you are right"; 6 7 //printf("%s\n",++m4); 8 printf("%s\n",m4+1); 9 printf("%s\n",++m3);10 11 return 0;12 } 数组名字 m4 阅读全文

posted @ 2013-09-12 10:43 イケメンおっさん_汪汪 阅读(213) 评论(0) 推荐(0) 编辑

2013年9月11日

uCosII 从 OSStart开始到思维定势··········

摘要: 我们先看我们的任务代码 TEST.C 1 /******************************Test*******************************/ 2 #include "includes.h" 3 #define TASK_STK_SIZE 512 //任务堆栈长度 4 5 OS_STK MyTaskStk[TASK_STK_SIZE]; //定义任务堆栈区 6 OS_STK YouTaskStk[TASK_STK_SIZE]; //定义任务堆栈区 7 INT16S key; ... 阅读全文

posted @ 2013-09-11 16:26 イケメンおっさん_汪汪 阅读(679) 评论(0) 推荐(0) 编辑

《C和指针》一书介绍操作符优先级

摘要: 《C和指针》一书介绍操作符优先级5.4.3 操作符的属性转:http://blog.csdn.net/shoutday/article/details/8275387 每个操作符的所有属性都列在表5.1所示的优先级表中。表中各个列分别代表操作符、它的功能描述、用法示例、它的结果类型、它的结合性以及当它出现时是否会对表达式的求值顺序施加控制。用法示例提示它是否需要操作数为左值。术语lexp表示左值表达式,rexp表示右值表达式。记住,左值意味着一个位置,而右值意味着一个值。所以,在使用右值的地方也可以使用左值,但是在需要左值的地方不能使用右值。 说明:结合性L-R自左向右,R-L自右向左。表.. 阅读全文

posted @ 2013-09-11 11:13 イケメンおっさん_汪汪 阅读(339) 评论(0) 推荐(0) 编辑

OSTimeTick()函数解析

摘要: 转:http://blog.csdn.net/shoutday/article/details/9303953ucos V2.52OSTimeTick()函数解析调用处:os_cpu_a.asm里_OSTickISR函数所有源文件:os_core.c 1 void OSTimeTick (void) 2 { 3 #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ 4 OS_CPU_SR cpu_sr; 5 #endif 6 OS_TCB *pt... 阅读全文

posted @ 2013-09-11 11:10 イケメンおっさん_汪汪 阅读(1769) 评论(0) 推荐(0) 编辑

2013年9月5日

二维数组和指针

摘要: 转:http://blog.csdn.net/iu_81/article/details/1782642⑴ 用指针表示二维数组元素。 要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组 下面我们讨论指针和二维数组元素的对应关系,清楚了二者之间的关系,就能用指针处理二维数组了。 设p是指向数组a的指针变量,若有: ... 阅读全文

posted @ 2013-09-05 10:39 イケメンおっさん_汪汪 阅读(264) 评论(0) 推荐(0) 编辑

2013年9月4日

c指针和const 的小程序

摘要: 1 #include 2 int main(void) 3 { 4 double rates[3] = {11.1,22.2,33.3}; 5 6 const double *pc1;//不可以更改所指向的数据,但是可以更改所指向的地址 7 8 double * const pc2 = rates;//不可以更改所指向的地址,但是更改所指向的数据 9 10 const double * const pc3 =rates+2;// 既不···也不能··· 11 12 pc1 = rates;13 p... 阅读全文

posted @ 2013-09-04 14:02 イケメンおっさん_汪汪 阅读(216) 评论(0) 推荐(0) 编辑

2013年9月2日

任哲版《嵌入式实时操作系统 ucos ii》笔记【1】--------基本数据结构TCB

摘要: 1 #include 2 #include 3 4 //declare the Tcb struch 5 6 typedef struct tcb{ 7 char * code_name; 8 int p; 9 int num;10 void (*fun)();11 }TCB;12 13 void function1()14 {15 printf("11111111111111111111\n");16 }17 18 void function2()19 {20 printf("2222222222222222222222\n");21 }... 阅读全文

posted @ 2013-09-02 14:46 イケメンおっさん_汪汪 阅读(552) 评论(0) 推荐(0) 编辑

导航