自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 strtok

原型:char *strtok(char *s, char *delim); 功能:分解字符串。s为要分解的字符串,delim为分隔符字符串。 说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。 strtok在s中查找包含在delim中的字符并用NULL(‘\0’)来替换,直到找遍整个字符串。 返回指向下一个标记串。当没有标记串时则返回空字符NULL。 /* 注意返回

2017-06-20 16:36:01 491

转载 转载: 关于std: :nothrow

今天和同事review代码时,发现这样的一段代码:Manager * pManager = new Manager();if(NULL == pManager){ //记录日志 return false;}//然后,一个同事就说这样写欠妥,应该改为:Manager * pManager = NULL;try{ pManager = new Manager();

2017-06-06 19:07:55 725

原创 气压计融合定高控制逻辑

2017-02-24 09:46:27 6431

原创 STM32F4 读写 AT24C512问题

移植正点原子对IC2,驱动程序读数据正确(使用写好的AT24C512测试,说明器件地址没有问题),但无法写入数据,驱动函数中,数据写入的用到的函数,数据读取都用的到,示波器检查IO配置正确(不正确的话,数据读取也不会出错),延时时间正确(排除时钟配置问题);问题陆陆续续扣了两天才找到原因,iic时序问题,iic停止函数中停止建立时间太短,官方数据手册最小时间为0.25us,原子哥的程序停止信号需要改

2017-02-22 19:15:00 6110 2

原创 DIY四轴笔记 串级PID理解

http://www.amobbs.com/thread-5554367-1-1.htmlvoid CTRL_1(float T) //x roll,y pitch,z yaw{ xyz_f_t EXP_LPF_TMP; /* 给期望(目标)角速度 */ EXP_LPF_TMP.x = MAX_CTRL_ASPEED *(ctrl_2.out.x/ANGLE_TO_MAX

2017-02-14 14:13:11 2955 1

原创 DIY四旋翼笔记三 基于mpu6050的数字滤波算法

http://url.cn/44uoT7L

2017-02-14 09:16:20 2495

原创 CAN 示波器分析数据帧

如图: 波特率500Kbps,方波不规整 加了120欧匹配。1 帧起始111101101101 ID111 RTR+IDE+R00111 DLC1101111101111101110111110101111101100111 数据1100111110110101111100011111010000101

2017-01-19 10:36:36 2193

转载 CAN总线 远程帧理解和应用

简单的说:如果A需要B节点向你发送数据!A可以用B节点的ID,发送一个remote frame,B收到A ID 的 Remote Frame 之后就发送数据给A!发送的数据就是数据帧!远程帧就像命令,命令相应的节点返回一个数据包.总结:由于CAN总线发送帧时,仲裁方法只依靠帧ID号,当有两个相同ID号的帧同时竞争总线时,总线就无法判别出让哪个设备先发送帧,于是就造成总线冲突。为了总线访问安全,每个发

2017-01-16 11:44:48 12436 3

原创 IAP升级 代码分析

/* 如何理解如下代码? *///跳转到应用程序段//appxaddr:用户代码起始地址.void iap_load_app(u32 appxaddr){ if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000) //检查栈顶地址是否合法. { jump2app=(iapfun)*(vu32*)(appxaddr+4);

2017-01-14 14:00:52 529

原创 STM32 FLASH操作

1.stm32f10xxx闪存编程参考手册写的很详细。2.主闪存编程:对主闪存编程每次可以写入16位。当FLASH_CR寄存器的PG位为’1’时,在一个闪存地址写入一个半字将启动一次编程;写入任何非半字的数据,FPEC都会产生总线错误。在编程过程中(BSY位为’1’),任何读写闪存的操作都会使CPU暂停,直到此次闪存编程结束。3.4. 写入flash函数代码正点原子例程。 用一个数组u16(半字)

2017-01-12 19:41:04 6509

原创 IAP & ICP

STM32 的中断向量表的设置主要是用在IAP 程序中,如果是普通的 flash 中只有一个程序,一般不需要设置这个。顾名思义,这个表存放的是中断服务函数的入口地址,当发生中断时,CPU来这个表中查询,以此获取中断函数的入口地址。STM32编程方式: ①在线编程(ICP,In-Circuit Programming): 通过JTAG/SWD协议或者系统加载程序(Bootloader

2017-01-10 16:21:32 649

原创 DIY四旋翼笔记二

距离记DIY笔记已经过去13天了,公司有事,学校有事两个实习,还有一个元旦假期。目前为止硬件是全通了,接下来就是软件和算法的学习了,算是开发平台搭建好了吧。先发张成果图,第一版的飞控是手工焊接的,问题是真的多,焊坏了元器件不说,主控需焊接的地方很多。上次笔记中,有两个等不亮的原因就是虚焊,后面电机也出现问题,一个正常转,一个有时转有时不转,两个不转。经过一下午的一步步分析查找,终于解决了问题,但是手

2017-01-03 19:26:23 485

转载 USB

http://blog.csdn.net/yxfabcdefg/article/details/52396126 USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low

2016-12-29 11:01:55 312

转载 stm32 设置systick中断抢先式优先级

http://blog.csdn.net/sunjiajiang/article/details/7741715

2016-12-29 09:53:19 5905

原创 GPIO定义可参考方法

//端口结构体typedef const struct { GPIO_TypeDef *port; //IO 时钟 uint32_t clk; //IO 端口 uint16_t pin; //IO 引脚 uint8_t state; //IO 输入输出状态 0)输出

2016-12-28 09:24:06 2071

转载 单片机IO口模拟SPI四种模式的程序

http://www.rationmcu.com/clang/495.htmlhttp://blog.csdn.net/zyboy2000/article/details/11861329

2016-12-23 14:22:34 6074

原创 DIY四旋翼笔记一

拿到元器件和板子,很开心,很激动。为了做这个毕设花了很多钱,也将花很多时间。算是给自己的大学生涯多添点精彩的回忆吧,好久没有焊元器件加上打样的PCB比较便宜质量很差,第一天晚上就焊坏了一个板子(MPU6050部分),两个MCU。再调LED灯的时候在用直流电源时没有把电压改过来,用9V的电压直接给飞机供电,结果GG了,好绝望啊。第三块板子了,这次十分小心,焊接不管美观,只要先能通在这个第一版上实习功能

2016-12-20 20:56:33 1077

转载 STM32的串口采用DMA方式接收数据测试

http://blog.csdn.net/jdh99/article/details/8444474

2016-12-17 12:38:38 1409

原创 I2C笔记

I2C总线中文讲解,详尽通俗(一些概念): http://wenku.baidu.com/link?url=n8aVmARYADcKwBAX5-3b9aml3nwPZh7k9R4FzREmGS8isp9UHCsQ47GiS4nZyerr4SwZLA9-4WGqWmuSEbDcx7yplDc39lGO5-8qBI9iPxqi2c 相关知识总结(转): http://blog.csdn.net/hy

2016-12-07 14:26:43 549

原创 定时器输入捕获

//初始化TIM5输入捕获参数 TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01 选择输入端 IC1映射到TI1上 TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕获 TIM5_ICInitStructure

2016-12-05 21:07:41 4166

原创 定时器比较输出

// 通道对应的引脚模式要设置成:GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 因为这个问题弄了三个小时 //初始化TIM3 设置为输出比较模式 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; // 1 TIM_OCInitStructure.T

2016-12-05 18:57:39 3671 1

转载 Linux 链接?软链接和硬链接区别?

http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html

2016-11-25 15:18:50 1086

转载 mysqldump及其命令用法

http://blog.csdn.net/yangyu112654374/article/details/4674478MySQL数据库的备份工具有很多,不过这里介绍的是一个小巧好用的mysqldump工具,位于数据库目录下bin/mysqldump.exe.这几天用phpMyAdmin备份数据库的时候出现乱码,反复在本地跟远程的Dreamhost空间上测试了数据库,但是还是导出数据库会出现乱码,应

2016-11-23 22:22:46 2334

原创 笔记sqlite3_exec / callback /get_table

笔记

2016-11-23 20:15:42 838

原创 数据库编程练习

/*****************************************************Version: 1 Description: 1. 不可以手动insert数据 2. 不可以delete指定数据 3. 使用回掉函数********************************************

2016-11-23 20:04:37 394

原创 SQLITE3的C接口

2016-11-23 16:25:45 454

原创 SQL指令扫盲

扫盲

2016-11-23 16:01:47 321

原创 Linux常用命令实例详解(N - Z)

Nnetstat显示网络有关的信息,比如套接口使用情况、路由、接口、协议(TCP等)等查看TCP连接的命令是什么?正确答案: C 你的答案: A (错误)tcpdumptopnetstatifconfigOPQRSTtar解压缩命令语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。主选项: -c

2016-11-23 11:38:40 843

原创 Linux常用命令实例详解(A - M)

Linux常用命令实例详解

2016-11-23 11:24:34 2653

转载 Linux 用户空间与内核空间数据交换方式

http://blog.sina.com.cn/s/blog_71fdf1f00102v5o8.html引言一般地,在使用虚拟内存技术的多任务系统上,内核和应用有不同的地址空间,因此,在内核和应用之间以及在应用与应用之间进行数据交换需要专门的机制来实现,众所周知,进程间通信(IPC)机制就是为实现应用与应用之间的数据交换而专门实现的,大部分读者可能对进程间通信比较了解,但对应用与内核之间的数据交换机

2016-11-22 20:57:25 3232

转载 C语言实现程序跳转到绝对地址0x100000处执行

嵌入式笔试题:想让程序跳转到绝对地址0x100000处执行,该如何做?网上看到有如下答案:((void()(void))0x100000)();经过在VC++6.0和Linux gcc4.4.3下测试,均不能通过编译。VC++6.0报错:error C2100: illegal indirectionGCC报错:error: void value not ignored as it ought to

2016-11-22 20:37:39 1439

原创 僵尸进程以及wait和waitpid函数

基本概念:  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程再创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。  孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进

2016-11-21 14:18:32 2995

原创 笔记 vfork,进程树,exec函数族,system函数

一. vfork区别:1. fork:子进程拷贝父进程的数据段 vfork:子进程与父进程共享数据段2. fork:父、子进程的执行次序不确定 vfork:子进程先运行,父进程后运行//分析下程序错误:#include <stdio.h>#include <unistd.h>#include <stdlib.h>int main(){ pid_t pi

2016-11-21 13:09:34 519

转载 Linux ps命令详解与示例说明

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多 的资源等等。总之大部分信息都是可以通过执行该命令得到的。名称:ps 使用权限:所有使用者 使用方式:ps [options] [–help] 说明:显示瞬间进程

2016-11-21 12:48:03 1948

原创 getchar()和putchar()详解

getchar()

2016-11-16 15:16:21 3990 1

原创 关于Linux 中sleep()函数说明

相关函数:signal, alarm头文件:#include <unistd.h>定义函数:unsigned int sleep(unsigned int seconds);函数说明:sleep()会令目前的进程暂停, 直到达到参数seconds 所指定的时间, 或是被信号所中断.返回值:若进程/线程挂起到参数所指定的时间则返回0,若有信号中断则返回剩余秒数。linux下Sleep()函数:单位为

2016-11-15 19:15:41 24490

原创 Linux系统编程之错误处理:errno和perror,strerror

Linux系统下错误处理方法:使用errno变量。头文件: errno.h在系统出现错误时内核把错误写入到变量errno中。用户的应用程序可以从这个变量中获取错误的原因。注意在系统调用返回失败时,必须紧接着引用errno变量,以避免程序中的下一条系统调用时覆盖errno的值。errno的值可以格式化使出,使用错误处理函数 : perror strerror。perror和strerror函数

2016-11-09 16:44:29 6722 1

原创 Linux下进程内存空间组成/进程的内存映像

Linux下进程内存空间组成

2016-11-08 21:01:32 2470

原创 队列(Queuce)的编程实现

队列的编程实现

2016-11-08 16:49:12 703

原创 栈(Stack)的编程实现

栈的代码实现

2016-11-08 16:12:47 381

空空如也

空空如也

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

TA关注的人

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