自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 STM32低功耗模式--STOP模式

平台:stm32f103rct6固件库:STM32F10x_StdPeriph_Lib_V3.5.0一、STOP模式的唤醒官方文件中特别提到要配置EXTI寄存器,要配置EXTI寄存器,要配置EXTI寄存器,比如USART,配好USART中断还得配相应RX引脚的EXTI中断,否则无法唤醒STOP模式!二、进入STOP的必要条件①  RCC_APB1Pe

2015-11-12 17:17:53 12262

原创 STM32标准库的移植

---------------------------------------------------------------------------------------------------------STM32 Standard library 的移植STM32有两种库,一个是老版的standard library,另一个是cube 网络资源90%都是std lib版

2015-11-12 16:38:34 2426 1

转载 getopt函数--获取命令行参数

相关函数表头文件        #include定义函数       函数原型:int getopt(int argc,char * const argv[ ],const char * optstring);获取的参数:extern char *optarg;extern int optind, opterr, optopt; getopt()用来分析命令行参数。

2015-09-23 14:01:26 909

原创 BIN转HEX详解

一、准备1.bin文件和hex文件 bin文件即二进制文件,区别于.mp3 .avi .pdf等格式的文件,以.bin后缀结尾,内容是二进制信息(非文本文件,即内容不是ascii码)hex文件即intel hex格式的文本文件,以十六进制表示,具有地址信息,可烧录进mcu。

2015-09-23 11:57:04 3802

转载 YModem协议

YModem协议:         YModem协议是由XModem协议演变而来的,每包数据可以达到1024字节,是一个非常高效的文件传输协议。下面有一些相关的文档。这里要感谢关注我微博的一些朋友提供的资料。省去了不少时间。         下面先看下YModem协议传输的完整的握手过程:先看下图SENDER:发送方。RECEIVER:接收方。第一步先由接收方,发送一个字符

2015-09-15 14:31:24 1545

原创 Unicode、UTF8、GB2312、ANSI关系

一、前言汉字编码是让人比较头疼的一块,最近下定决定把他搞懂。网上翻了个遍,讲得详细透彻的让人头疼看不下去,讲得通俗的不够详细,只言片语。更有甚者开篇即讲Unicode是啥,多少个字符,GB2312巴拉巴拉,多少个汉字,全然不讲应用场景,不理知识接受的先后,遂结合翻看过的几篇写一写心得。二、字符编码的发展ASCII --> 拓展字符集 --> GB2312(中国大陆)   --> G

2015-09-14 17:59:17 982

原创 thread api整理

rt_thread_t    rt_thread_find(char *name) ;  查找线程名字,成功返回线程句柄,失败返回NULLrt_err_t rt_thread_delay(rt_tick_t tick); 阻塞tick长时间,进入suspend队列,被定时器唤醒rt_err_t rt_thread_sleep(rt_tick_t tick); 同上(sleep被

2015-03-14 18:41:41 723

原创 rt thread

idle线程只负责处理死亡(删除、退出、detech)进程其他线程在分配完时间片后,按优先级运行,高优先级运行时一直占用线程资源,直到yeild让出、delay阻塞(抢锁或者主动阻塞)才进入挂起队列,轮到次优先级运行。次优先级运行时同样占用资源不被低优先级抢占,直到高优先级不在阻塞才被占用线程,此时次优先级同样进入挂起队列。相同优先级时间片用完即释放CPU给另一线程

2015-03-13 21:27:26 831

原创 stemwin的汉字显示

stemwin功能很强大,封装了对lcd的常见操作,屏蔽了lcd层的接口函数。但却还没有集成中文字库,这不能不说是一个遗憾。网上关于stemwin的中文字库教程能讲详细的只有一篇安富莱的《第18章:汉字显示方式一(FontCvt的使用)》,笔者按教程操作后发现始终不能显示。折腾2天打算放弃之际,终于柳暗花明成功在lcd上显示中文。这里特别感谢《emWin - 汉字字库生成及显示》一文,完美解决了我

2015-03-07 11:50:34 6976 1

原创 二维码的C语言实现

二维码在今天已经相当普及了,制作二维码也不难,网上有很多制作二维码的网站,输入信息,立即转换出二维码。然而我们要自己根据信息制作出二维码却不那么简单。网上粗略找了下源码,几乎清一色的是java/c#版本的,这对于stm32芯片项目来说没什么大帮助。最终辗转找到Linux上的qrencode软件包,将其移植了过来。一、初识二维码a)        二维码可以存储1850个字节的信

2015-03-07 11:12:20 31177 14

原创 stemwin 之 字母显示

层次:LCD驱动完备,操作STEMWIN函数显示内容,LCD驱动层是透明的字库:字母库集成在STemWin526_cm4_iar.a的库中, 没有源代码文件:user中建立一个专门GUI操作函数,供main.c调用========通用操作=================================#include "GUI.h"========GUI主函数

2015-03-03 11:56:37 1099

原创 STM32的LCD

STM32中并没有集成LCD的接口,所以HAL库里并没有LCD的驱动,需要专门的LCD控制器以及自制驱动:并没有LCD驱动LCD小知识:LCD没有自带背光源,需要LED作为背光源才能达到显示功能lcd 相关文件:stm32f429i_discovery.c    定义LCD控制芯片ili9341的接口,用于配置LCDstm323f429i_dis

2015-03-01 15:01:48 1362

原创 TICK

TICK是系统定时器,设置TIMERmain.c   :   HAL_InitTick  ------  设置TIMER6it.c     : TIM6_DAC_IRQHandler ----- uwTick++tim.c : Delay     -------- while((HAL_GetTick() - tickstart)    退出

2015-03-01 13:58:21 520

原创 KEY

实验现象:按键按下后,产生外部中断,中断处理函数中打开定时器,定时器每隔产生1S的中断,打开LED闪烁。

2015-02-28 18:19:31 535

转载 IICvs SPI

IICvs SPI         现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议。

2015-02-26 16:49:15 526

转载 指向指针的指针

1. 设计一个函数:void find1(char array[], char search, char * pi) 要求:这个函数参数中的数组array是以0值为结束的字符串,要求在字符串array中查找字符是参数search里的字符。如果找到,函数通过第三个参数(pa)返回值为array字符串中第一个找到的字符的地址。如果没找到,则为pa为0。 设计:依题意,实现代码如下。 voi

2014-08-13 17:21:56 465

原创 数组与指针

1、数组指针2、指针数组3、指向指针的指针4、多维数组

2014-08-13 16:53:12 439

原创 结构体的用法

1、数据类型的定义2、

2014-08-13 16:05:57 762

原创 C中的类型强制转换

1、高低字节互转 2、有无符号类型互转

2014-08-13 15:41:52 755

转载 断言(ASSERT)的用法

1、与if比较2、举例3、用法

2014-08-13 15:23:14 818

原创 C中的声明与定义

1、说明:定义

2014-08-13 14:59:43 488

转载 Linux进程间通信——使用共享内存

下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc

2014-08-11 23:59:41 439

转载 LINUX进程间通信---使用信号(转自倦飞L)

一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产

2014-08-11 11:56:51 647

原创 进程管道通信

一、管道通信1、pipe

2014-08-07 23:12:47 693

原创 进程控制

1、获取进程ID2、创建进程3、进程中调用脚本

2014-08-07 13:04:48 419

原创 time.h

1、时间获取

2014-08-07 00:36:28 557

转载 errno、stderr、perror函数和strerror函数

strerror()方法与perror()的用法十分相似。    先谈谈perror()的用法,这个方法用于将上一条语句(方法)执行后的错误打印到标准输出上。一般情况下(没有使用重定向的话),就是输出到控制台上。但是,如果我需要了解另外一个进程的某一个方法执行的错误,或者更briefly,我就希望将错误打印到一个文件里面,perror()就不太合适了!为了实现我刚刚说到的要

2014-08-06 11:57:53 1746

转载 fseek

int fseek( FILE *stream, long offset, int origin );第一个参数stream为文件指针第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SETSEEK_SET: 文件开头SEEK_CUR:

2014-08-06 11:34:02 504

原创 mkdir

1、mkdir 能创建文件2、实例#includeint main(int argc,char *argv[]){ if(mkdir(argv[1],10777)!=-1) { printf("cannot create\n"); }}3、运行结果

2014-08-06 11:27:10 560

原创 getcwd的用法举例

1、 getcwd 是获取当前工作目录的函数2、实例#include #define LENGTH 100int main(void){ FILE *fd; char str[LENGTH]; getcwd(str,sizeof(str)); printf("current working directory:%s\n",str);}3、运行结果

2014-08-06 10:53:57 1283

原创 fread和fwrite的使用举例

#include size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

2014-08-06 00:28:53 704

原创 fputs_fgets使用举例

1、 fputs用于将字符串输入到文件中,而fgets则相反

2014-08-05 10:25:58 1229

原创 图形界面文本输入,putchar输出的一点发现--多个回车符

1、在图形界面打开文本,输入1

2014-08-05 10:19:23 1640

原创 fprintf和fscanf使用举例

1、fprintf是从标准输入设备往文件里写入数据2、 fsanf是从

2014-08-05 09:58:20 3817

原创 scanf的一些用法

一、用scanf搭配getchar

2014-08-05 00:00:28 602

空空如也

空空如也

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

TA关注的人

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