<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fly__chen的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fly__chen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fly__chen]]></copyright><item><title><![CDATA[strtok]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/73500205</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/73500205</guid><author>fly__chen</author><pubDate>Tue, 20 Jun 2017 16:36:01 +0800</pubDate><description><![CDATA[原型：char *strtok(char *s, char *delim); 
功能：分解字符串。s为要分解的字符串，delim为分隔符字符串。 
说明：首次调用时，s必须指向要分解的字符串，随后调用要把s设成NULL。 strtok在s中查找包含在delim中的字符并用NULL(‘\0’)来替换，直到找遍整个字符串。 返回指向下一个标记串。当没有标记串时则返回空字符NULL。 /*    注意返回]]></description><category></category></item><item><title><![CDATA[转载：  关于std: :nothrow]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/72886416</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/72886416</guid><author>fly__chen</author><pubDate>Tue, 06 Jun 2017 19:07:55 +0800</pubDate><description><![CDATA[今天和同事review代码时，发现这样的一段代码：Manager * pManager = new Manager();
if(NULL == pManager)
{
    //记录日志
    return false;
}
//然后，一个同事就说这样写欠妥，应该改为：
Manager * pManager = NULL;
try
{
    pManager = new Manager();]]></description><category></category></item><item><title><![CDATA[气压计融合定高控制逻辑]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/56831207</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/56831207</guid><author>fly__chen</author><pubDate>Fri, 24 Feb 2017 09:46:27 +0800</pubDate><description><![CDATA[定]]></description><category></category></item><item><title><![CDATA[STM32F4 读写 AT24C512问题]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/56494855</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/56494855</guid><author>fly__chen</author><pubDate>Wed, 22 Feb 2017 19:15:00 +0800</pubDate><description><![CDATA[移植正点原子对IC2，驱动程序读数据正确（使用写好的AT24C512测试，说明器件地址没有问题），但无法写入数据，驱动函数中，数据写入的用到的函数，数据读取都用的到，示波器检查IO配置正确（不正确的话，数据读取也不会出错），延时时间正确（排除时钟配置问题）；问题陆陆续续扣了两天才找到原因，iic时序问题，iic停止函数中停止建立时间太短，官方数据手册最小时间为0.25us，原子哥的程序停止信号需要改]]></description><category></category></item><item><title><![CDATA[DIY四轴笔记  串级PID理解]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/55098378</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/55098378</guid><author>fly__chen</author><pubDate>Tue, 14 Feb 2017 14:13:11 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[DIY四旋翼笔记三        基于mpu6050的数字滤波算法]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/55094690</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/55094690</guid><author>fly__chen</author><pubDate>Tue, 14 Feb 2017 09:16:20 +0800</pubDate><description><![CDATA[http://url.cn/44uoT7L]]></description><category></category></item><item><title><![CDATA[CAN  示波器分析数据帧]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/54613345</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/54613345</guid><author>fly__chen</author><pubDate>Thu, 19 Jan 2017 10:36:36 +0800</pubDate><description><![CDATA[如图： 波特率500Kbps，方波不规整 加了120欧匹配。1              帧起始111101101101   ID111            RTR+IDE+R00111           DLC11011111
01111101
11011111
01011111
01100111       数据
11001111
10110101
111100011111010000101]]></description><category></category></item><item><title><![CDATA[CAN总线 远程帧理解和应用]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/54572678</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/54572678</guid><author>fly__chen</author><pubDate>Mon, 16 Jan 2017 11:44:48 +0800</pubDate><description><![CDATA[简单的说：如果A需要B节点向你发送数据！A可以用B节点的ID，发送一个remote frame，B收到A ID 的 Remote Frame 之后就发送数据给A！发送的数据就是数据帧！远程帧就像命令,命令相应的节点返回一个数据包.总结：由于CAN总线发送帧时，仲裁方法只依靠帧ID号，当有两个相同ID号的帧同时竞争总线时，总线就无法判别出让哪个设备先发送帧，于是就造成总线冲突。为了总线访问安全，每个发]]></description><category></category></item><item><title><![CDATA[IAP升级   代码分析]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/54426466</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/54426466</guid><author>fly__chen</author><pubDate>Sat, 14 Jan 2017 14:00:52 +0800</pubDate><description><![CDATA[/* 如何理解如下代码？ */
//跳转到应用程序段
//appxaddr:用户代码起始地址.
void iap_load_app(u32 appxaddr)
{
    if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000) //检查栈顶地址是否合法.
    { 
        jump2app=(iapfun)*(vu32*)(appxaddr+4);]]></description><category></category></item><item><title><![CDATA[STM32  FLASH操作]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/54379939</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/54379939</guid><author>fly__chen</author><pubDate>Thu, 12 Jan 2017 19:41:04 +0800</pubDate><description><![CDATA[1.stm32f10xxx闪存编程参考手册写的很详细。2.主闪存编程：对主闪存编程每次可以写入16位。当FLASH_CR寄存器的PG位为’1’时，在一个闪存地址写入一个半字将启动一次编程；写入任何非半字的数据，FPEC都会产生总线错误。在编程过程中(BSY位为’1’)，任何读写闪存的操作都会使CPU暂停，直到此次闪存编程结束。3.4. 写入flash函数代码正点原子例程。 
用一个数组u16（半字）]]></description><category></category></item><item><title><![CDATA[IAP & ICP]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/54315034</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/54315034</guid><author>fly__chen</author><pubDate>Tue, 10 Jan 2017 16:21:32 +0800</pubDate><description><![CDATA[STM32 的中断向量表的设置主要是用在IAP　程序中，如果是普通的 flash 中只有一个程序，一般不需要设置这个。顾名思义，这个表存放的是中断服务函数的入口地址，当发生中断时，CPU来这个表中查询，以此获取中断函数的入口地址。STM32编程方式： 
 ①在线编程（ICP,In-Circuit Programming）: 
      通过JTAG/SWD协议或者系统加载程序(Bootloader]]></description><category></category></item><item><title><![CDATA[DIY四旋翼笔记二]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/53997237</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/53997237</guid><author>fly__chen</author><pubDate>Tue, 03 Jan 2017 19:26:23 +0800</pubDate><description><![CDATA[距离记DIY笔记已经过去13天了，公司有事，学校有事两个实习，还有一个元旦假期。目前为止硬件是全通了，接下来就是软件和算法的学习了，算是开发平台搭建好了吧。先发张成果图，第一版的飞控是手工焊接的，问题是真的多，焊坏了元器件不说，主控需焊接的地方很多。上次笔记中，有两个等不亮的原因就是虚焊，后面电机也出现问题，一个正常转，一个有时转有时不转，两个不转。经过一下午的一步步分析查找，终于解决了问题，但是手]]></description><category></category></item><item><title><![CDATA[USB]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/53925217</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/53925217</guid><author>fly__chen</author><pubDate>Thu, 29 Dec 2016 11:01:55 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/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]]></description><category></category></item><item><title><![CDATA[stm32 设置systick中断抢先式优先级]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/53924406</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/53924406</guid><author>fly__chen</author><pubDate>Thu, 29 Dec 2016 09:53:19 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/sunjiajiang/article/details/7741715]]></description><category></category></item><item><title><![CDATA[GPIO定义可参考方法]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/53905588</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/53905588</guid><author>fly__chen</author><pubDate>Wed, 28 Dec 2016 09:24:06 +0800</pubDate><description><![CDATA[//端口结构体
typedef const struct 
{
    GPIO_TypeDef    *port;      //IO 时钟
    uint32_t        clk;        //IO 端口
    uint16_t        pin;        //IO 引脚
    uint8_t         state;      //IO 输入输出状态 0)输出]]></description><category></category></item><item><title><![CDATA[单片机IO口模拟SPI四种模式的程序]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/53838949</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/53838949</guid><author>fly__chen</author><pubDate>Fri, 23 Dec 2016 14:22:34 +0800</pubDate><description><![CDATA[http://www.rationmcu.com/clang/495.htmlhttp://blog.youkuaiyun.com/zyboy2000/article/details/11861329]]></description><category></category></item><item><title><![CDATA[DIY四旋翼笔记一]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/53768959</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/53768959</guid><author>fly__chen</author><pubDate>Tue, 20 Dec 2016 20:56:33 +0800</pubDate><description><![CDATA[拿到元器件和板子，很开心，很激动。为了做这个毕设花了很多钱，也将花很多时间。算是给自己的大学生涯多添点精彩的回忆吧，好久没有焊元器件加上打样的PCB比较便宜质量很差，第一天晚上就焊坏了一个板子（MPU6050部分），两个MCU。再调LED灯的时候在用直流电源时没有把电压改过来，用9V的电压直接给飞机供电，结果GG了，好绝望啊。第三块板子了，这次十分小心，焊接不管美观，只要先能通在这个第一版上实习功能]]></description><category></category></item><item><title><![CDATA[STM32的串口采用DMA方式接收数据测试]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/53706325</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/53706325</guid><author>fly__chen</author><pubDate>Sat, 17 Dec 2016 12:38:38 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/jdh99/article/details/8444474]]></description><category></category></item><item><title><![CDATA[I2C笔记]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/53504729</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/53504729</guid><author>fly__chen</author><pubDate>Wed, 07 Dec 2016 14:26:43 +0800</pubDate><description><![CDATA[I2C总线中文讲解,详尽通俗（一些概念）： 
http://wenku.baidu.com/link?url=n8aVmARYADcKwBAX5-3b9aml3nwPZh7k9R4FzREmGS8isp9UHCsQ47GiS4nZyerr4SwZLA9-4WGqWmuSEbDcx7yplDc39lGO5-8qBI9iPxqi2c 相关知识总结（转）： 
http://blog.youkuaiyun.com/hy]]></description><category></category></item><item><title><![CDATA[定时器输入捕获]]></title><link>https://blog.youkuaiyun.com/fly__chen/article/details/53468863</link><guid>https://blog.youkuaiyun.com/fly__chen/article/details/53468863</guid><author>fly__chen</author><pubDate>Mon, 05 Dec 2016 21:07:41 +0800</pubDate><description><![CDATA[//初始化TIM5输入捕获参数
    TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01     选择输入端 IC1映射到TI1上
    TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;    //上升沿捕获
    TIM5_ICInitStructure]]></description><category></category></item></channel></rss>