该文被密码保护。
06 2013 档案
摘要:概述:学习STM32的GPIO configration/***************************************************************************** 名 称:void FM_Configuration(void)* 功 能:I2C FM收音机模块TEA5767控制线的初始化 * 入口参数:无* 出口参数:无* 说 明:* 调用方法:无 ****************************************************************************/void FM_Confi...
阅读全文
摘要:1.指向结构变量的指针。2.定义:struct stu *pstu, 赋值是把结构变量的首地址赋给指针,不能把结构名给该指针;如, pstu = &boy;3. 访问结构变量的成员 (*结构变量指针).成员名 结构变量指针->成员名4. 5.->是指针特用的;->运算是间接寻址,比.运算的寻址速度更快。
阅读全文
摘要:1.#define INT8U unsigned char ; 用INT8U代替unsigned char2.typedef typedef int size; 此声明定义了一个int的同义字,名字为size。注意typedef并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要int的上下文中使用size3.typedef enum {ERROR = 0, SUCCESS = !ERROR} Status;
阅读全文
摘要:在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。11.10.1 枚举类型的定义和枚举变量的说明1. 枚举的定义枚举类型定义的一般形式为: enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如...
阅读全文
摘要:1.向邮箱发送一则消息2.原型:INT8U OSMboxPost(OS_EVENT *pevent, void *msg)3. pevent: 消息邮箱指针(ECB指针) msg: 消息指针4. example 1】OSMboxPost(Str_Box,s);//发送消息s ;其中两个参数Str_Box是OS_EVENT*pevent表示消 //息邮箱指针(是事件控制块指针),s是void*msg表示消息指针 //该函数表示把消息s发送到消息邮箱Str_Box中 2】OSMboxPost(UART_mBox,&feedBackStr); 3】 unsigned char msg[50.
阅读全文
摘要:/***************************************************************************** 名 称: void USART_OUT(USART_TypeDef* USARTx, uint8_t *Data,...)* 功 能: 格式化串口输出函数* 入口参数:USARTx: 指定串口*Data: 发送数组 ...: 不定参数* 出口参数: 无* 说 明: 格式化串口输出函数 "\r" 回车符 USART_OUT(USART1, "abcdefg\r") ...
阅读全文
摘要:/****************************************************** 整形数据转字符串函数 char *itoa(int value, char *string, int radix) radix=10 标示是10进制 非十进制,转换结果为0; 例:d=-379; 执行 itoa(d, buf, 10); 后 buf="-379" **********************************************************/char *itoa(int value...
阅读全文
摘要:1. 原型:void *OSMboxPend(OS_EVENT *pevent, INT16U timeout, INT8U *err)2. 参数意义: pevent :消息邮箱 timeout: 等待时间,0[无限期等待] err: 错误消息3. 返回值:邮箱中的消息指针4.调用: 1】ss=OSMboxPend(Str_Box,10,&err); 2】INT8U ERROR; edidSendStr = OSMboxPend(EDID_mBox,0,&ERROR); 3】INT8U err; unsigned char * msg; msg=(uns...
阅读全文
摘要:1.任务可以是一个无限循环,或执行一次后被删除(代码不再运行)2.多大64个任务,但4个最高优先级和4个最低优先级保留;3.建立任务:OSTaskCreate() andOSTaskCreateExt(),后者是前者的扩展,提供附加功能。4.task不能由ISR建立;5.任务函数的写法,如下:static void App_TaskStart(void* p_arg){ (void) p_arg; //预留的,目前没有使用;避免编译时出现“未使用的局部变量”警告 //初始化ucos时钟节拍 OS_CPU_SysTickInit(); ...
阅读全文
摘要:Windows系统具有强大的绘图功能,可以用来模拟OSD显示。接下来将设计一个简单的模拟显示终端的程序,用于后续显示功能和菜单系统的开发。说明一下,对于Windows下的MFC编程我不怎么了解,只知道一些皮毛东西,所以望大家能指出其中的不足和错误。另外,这次开发的最终目标是建立一个可以移植的菜单系统,所以重点是模拟器端的运行情况而不是Windows程序的运行效率。为了能比较真实的模拟显示内存(OSD Buffer)到显示终端的过程,用一个和显存等大的数组来模拟OSD Buffer,用一个和显示终端等大小的控件作为模拟显示,用一个和色板等大的数组来模拟硬件色板。相应的变量为:BYTE OSDBu
阅读全文
摘要:转载自:http://blog.pfan.cn/programming/21209.html现在已经可以通过修改存储单元内容来改变OSD的像素,但还有个关键的问题是如何根据需要来进行操作,即如何将某个像素设置为指定颜色。接下来就要介绍一下色板的概念。如下图,某个Byte中的低四Bit内容与一个像素一一对应,其值为“3”,那么数字“3”所代表的颜色便由色板来决定,然后再驱动OSD屏幕将像素设置为制定颜色。同样地,这种色板和物理OSD显示屏幕的对应关系一般也是通过寄存器设置,由硬件上来保障实现的。对于特定的显示环境,这种色板一般是固定的。为了能使固定的图像数据在进行OSD显示时可以以不同的颜色输出
阅读全文
摘要:OSD(On Screen Display)是屏幕显示技术的一种,用于在显示终端上显示字符、图形和图像。实现的过程为:存储器(一般为内存的一段)的内容与显示终端上的像素一一对应。这种一一对应的关系一般通过寄存器设置,然后由硬件上来负责实现。对存储器内容的操作便改变了屏幕的像素,从而可以实现特定界面的显示。实际上这也是一般数字显示器进行显示的方法。例如:320*240 单色(1 Bit)像素的OSD,需要40*240 Bytes的存储空间与其对应;320*240 16色(4 Bits)像素的OSD,需要160*240 Bytes的存储空间与其对应。存储器空间为一维的,而OSD空间为二维的,并且对
阅读全文
摘要:使用git的时候难免会用到remote tracking,下面简要记录一下在使用git remote时的一些技巧(1)add $git remote add origin https://github.com/ask/celery.git 注:暂以celery的git作为示例,celery是一个挺不错的Distributed Task Queue,有很多值得学习的地方,在此也顺便推广一下celery(2) show remote $git remote show origin 通过$git remote show origin来得到remote中的所有branch列表(3)fetch ...
阅读全文
摘要:1.任务(task)也称作一个线程;2.一个任务有5种状态:休眠,就绪,运行,挂起,被中断 休眠:任务驻留在程序空间中,还没有交给ucos管理,把任务交给ucos是通过调用OSTaskCreate()或OSTaskCreateExt()两个函数之一实现的。 任务一旦确立将进入就绪状态。一个任务可通过调用OSTaskDel()返回到休眠状态,即被删除,或通过调用该函数让另外一个任务进入休眠状态。 就绪:如果一个任务所等待的资源除CPU外已全部获得,则处于就绪状态。如果该任务的优先级最高,则马上执行。 运行:任何时候只有一个在运行;正在运行的任务可能会因为等待某一个任务而进入等待状态,...
阅读全文
摘要:1 一般格式 printf(格式控制,输出表列) 例如:printf("i=%d,ch=%c\n",i,ch); 说明: (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息: ①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。 ②普通字符,即需要原样输出的字符。 (2)“输出表列”是需要输出的一些数据,可以是表达式 (3) printf函数的一般形式可以表示为 printf(参数1,参数2,……,参数n) 功能是将参数2~参数n按参数1给定的格式输出2 格式字符(9种) (1)d(或i)格式符。用来输出十进制整数
阅读全文
摘要:具体使用方法与信号量的方式大同小易.首先建立一个OS_EVENT结构体(事件控制块)的指针:OS_EVENT*MSBOX;然后建立消息邮箱,返回值为事件控制块的指针:MSBOX=OSMboxCreate((void*)0);然后就可以随时使用此邮箱了.比较常用的有等待消息邮箱与发送消息邮箱:具体使用方式见以下程式. #include“stm32f10x_lib.h” #include“includes.h” OS_STKos_sysinit_stk[60]; OS_STKos_ledshow_stk[60]; OS_STKos_ideluser_stk[60];OS_STKos_uart_..
阅读全文
摘要:1. OS_EVENT *T2sem=(OS_EVENT *)0; 这句代码的意思是 把OS_EVENT类型的一个指针T2sem赋值为0; 其中 OS_EVENT是数据类型,*代表是指针类型,(OS_EVENT *)0 表示把0这个数据转换成OS_EVENT指针类型,其实可以省略的。2. OS_EVENT *OSSemCreate (INT16U cnt); 功能:创建一个信号量3. OS_EVENT *OSSemDel (OS_EVENT *pevent, INT8U opt, INT8U *err); 功能:删除一个信号量。回收OS_EVENT,如果OS_EVENT有等...
阅读全文
摘要:C语言中使用静态函数的好处:静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。比如:在uartCMD.C中有个函数static void cmdProcess(void); //函数声明,在RS485.C中也有个static void cmdProcess(void);
阅读全文
摘要:1.局部变量局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内;函数的形参就是局部变量;2.全局变量全局变量也称为外部变量,它是在函数外部定义的变量。全局变量的说明符为 extern3.Auto变量函数中的局部变量,如不专门声明为 static 存储类别,都是动态地分配存储空间的,数 据存储在动态存储区中。函数中的形参和在函数中定义的变量(包括在复合语句中定义的变 量),都属此类,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释 放这些存储空间。这类局部变量称为自动变量。自动变量用关键字 auto 作存储类别的声明。4.Static变量有时希望函数..
阅读全文
摘要:文本编辑工具
阅读全文
摘要:#include <stdio.h>头文件#ifdef __GNUC__#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endifPUTCHAR_PROTOTYPE{USART_SendData(EVAL_COM1, (uint8_t) ch);while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET){}return ch;}定义了以上的然后就可以调
阅读全文

浙公网安备 33010602011771号