- 博客(83)
- 资源 (36)
- 收藏
- 关注
原创 100行代码精通C语言-目录
数据结构 关键字 流程控制 经典结构 链表 树 图 实际样例 扑克牌洗牌 约瑟夫问题-数组实现 约瑟夫问题-链表实现 算法 排序 冒泡排...
2015-12-29 14:34:01 2101
转载 一篇文章就能掌握SPI总线
原文地址:http://www.deyisupport.com/blog/b/analogwire/archive/2013/11/11/spi.aspx作者: Thomas Kugelstadt 德州仪器串行外设接口 (SPI) 总线是一个工作在全双工模式下的同步串行数据链路。它可用于在单个主控制器和一个或多个从设备之间交换数据。其简单的实施方案只使用四条支持数据与控制的信号线(图
2014-03-13 11:01:52 1036
原创 protect your eyes - 豆绿色
电脑工作者经常面对屏幕,将屏幕的底色调整为以下设置,可以有效缓解视力疲劳,保护视力。windows中空白处右键点击出属性》外观》高级,项目选择窗口,颜色自定义为以下3个数字: 色调:85饱和度:90 亮度:205
2011-11-08 20:49:06 955
原创 用计算机思维认识摩斯密码(摩斯密码速记)
摩斯密码,又称摩尔斯密码,或者摩斯代码。是十九世纪摩尔斯发明的一种靠单音就能传播信息的编码方式。但是一般介绍莫斯代码都是按照26
2021-05-26 18:03:23 21887 1
原创 tera term串口文本匹配打印时间脚本
使用tera term查看串口消息时,想知道收到特定消息的具体时间,却发现没有现成的脚本可以使用。自己动手写了一个,独乐乐不如众乐乐。复制这段代码保存到ttl后缀文件即可。WhatString = 'hi'while 1 wait WhatString getdate datestr gettime timestr dispstr ' [' datestr ' ' timestr '] 'endwhile...
2021-04-28 11:14:40 1152
原创 NXP JN5169 UART波特率问题
被NXP JN5169的UART收数据大批量错误坑了一把,最后发现是NXP的速率计算因子误差太大导致。写了个程序,把所有常见的波特率匹配了一把,匹配的结果(相对误差在千分之七以下)即波特率的计算因子建议值如下:ratio=0.007000Divisor=414 Cpb=15 rate=2415 target=2400 error=1.006250Divisor=415 Cpb=15 rate=2409 target=2400 error=1.003750Divisor=416 Cpb=1
2020-11-20 18:20:55 334
原创 NXP ZigBee JN5169开发流程总结
经过一个多月的摸索,现总结JN516x的开发流程如下:安装IDE和SDK。 源代码的编写:这里又包括图形界面的配置,和源文件中的纯代码的编写 编译:可能要动手自己修改Makefile。 烧写:又分为UART模式烧写和JTAG模式烧写。 运行看功能,可能需要抓包。接着简单展开描述一下:安装IDE和SDK的资料网上有很多,我也是参考其他大佬的说明。其他几步好像写的人很少,我就重点补充下后面几点。编写代码涉及两块内容,NXP将很多底层的配置抽象成了图形界面,只要拖拖拽拽,在后面的编译中就
2020-10-12 17:22:18 2115
原创 NXP ZigBee JN5169 DimmerLight编译过程梳理
开发环境BeyondStudio终于全部搭建完毕,但是看着IDE感觉无从下手。因此梳理了下编译流程,通过学习编译过程中各个关键流程来反向摸索开发流程需要修改到哪些文件。先上整理后的结果:JENNIC_MAC is Mini MAC shimBuilding trace version ...第0步:清理工作rm -f 删除.o.d.map中间文件rm -f 删除os_gen.c、os_gen.h、os_irq*.S、pdum_gen.*和zps_gen*.*第一步:OSCONFI.
2020-08-21 13:42:09 719
原创 NXP BootLoader对应软件简单说明及blhost命令说明
接触到Kinetis系列芯片,想使用下内置的BootLoader功能,发现官方有现成pc端控制软件blhost,所以尝试着跑着运行下。但是这个软件只针对特定系列的chip,我分析原因是,这个pc应用程序只能通过发送98 66 98来识别有反应的芯片,没反应的就不支持。另外发现有一个KinetisFlashTool兼容性好一点,可以发送98 66 98和5A A6来尝试连接BootLoader。总结如下:blhost:缺点:命令行使用,只支持对98 66 98有反馈的芯片优点:开放,.
2020-07-09 11:25:01 2231 1
原创 开发U3V时遇到bus hound报babble detect错误
先上个bus hound的截图。项目内容是开发一款符合u3v协议的工业相机。按照协议,我应该发送一帧3424256byte长度的包,然后发送一帧1024byte的第二帧。从bus hound上看,看起来是没问题的,4号endpoint先传了3424256字节,然后是1024字节。但是,这个1024字节的下面总是提示babble detected!字面意思是:检测到胡言乱语,...
2019-07-11 16:23:01 3377 12
原创 sizeof 利用预编译查看数据结构占用内存空间
偶然看到很久以前的一个代码片段,分享出来。代码功能:展示各种数据结构占用的内存空间大小要点1:sizeof是编译时转换为数字的,运行时已经相当于常量要点2:宏变量转换字符串#include <stdio.h>#include <stdlib.h>#define SPACE(T) printf("%20s:%5d B \n",#T,sizeof(T...
2019-06-17 16:00:34 826
原创 代码修改&工程编译:perl、ruby、yaml
最近几天开始为R公司的MCU写SPI控制器驱动了。其实这个代码应该是随厂的,可惜问了一圈都没人知道,只好自己动手先写了。中断配好了,GPIO也配好了,寄存器定义好了,还花时间对了下原理图。明天开始写接口。修改代码时瞄了一眼编译脚本,用到了perl、ruby、yaml,额每一个关键词又是一大坨知识。回头继续看吧。还遇到个问题是想在Makefile中为echo添加颜色的,试了记下这个-e始
2017-12-28 20:01:55 294
转载 文件MD5 & 希捷引导开发组写的README
偶然看到希捷写的readme,感觉写得不错,特分享之。尤其是中间有段MD5的使用方法,可以借鉴来,以后自己发布也能这么玩:)分割线以下是原文:----------------------------------------March 6, 2017Thank you for downloading SeaTools Bootable v2.0.7This i
2017-12-28 09:58:24 526
原创 芯片的SPI口
总结下上周五的工作内容不同厂家的不同芯片在实现总线端口时都有不同的方法。突然回忆起很久以前在H公司做的一款高通的芯片,MDM6600,那个端口叫GSBI。这个口可以多种功能复用,可以做i2c,可以做spi。都是根据不同的配置来实现不同的功能。周五的工作内容也是类似,而且更简单,就是R公司的一款MCU,调试下SPI口就好了。前一天的总结写漏了,pin配置好,中断再配置好,然后是寄存器
2017-12-25 11:54:29 987
原创 文档能力与audio测试
今天的工作内容主要就是修改一篇文档:文档编辑能力是很重要的一种能力,不亚于编写代码。文档要求:起码要有个封面吧总目录也必须有,图目录、表目录做的好的话最好也有。而且所有目录都应该与章节对应,可以自动更新。正文部分所有章节大标题小标题,文档引用,图表引用都要对应。好的话再区分个奇偶页。最后带附录,参考文档。文档更新历史,版本对应。另外简单对应了一个
2017-12-21 17:59:06 1011
原创 modem文档和寄存器访问方式
今天的工作内容:给之前做的一款modem补充文档(欠下的债早晚要还的),遗憾就是时间紧迫只支持了串口。USB硬件改动后Linux能识别但是驱动待添加,回头有空搞搞。I2S是引脚都没出,这就没得玩了,不过试了下接打电话还是OK的。还有一项就是继续迁移SPI口,从1通道迁移到0通道。难度不大,但是繁琐。GPIO重新陪下,所有的寄存器操作也需要更新。这就就牵扯出一个问题,
2017-12-20 17:46:50 349
原创 嵌入式软件开发准备1
昨天准备了这么几个内容TFTP服务器:可以使用ubuntu自带服务,也可以使用第三方软件,例如IPOPNFS服务器:使用ubuntu自带服务,window下只有server版有第三方软件,所以还是前者好交叉编译器:要注意是32位还是64位
2017-12-20 09:14:16 178
原创 C语言32个关键字
刚面试了个大学生,居然连所有的关键字都不熟悉。。。 特此分类总结下:一共32个关键字。(这里说的是ANSI C标准哈,C99、C11暂且不谈) 关键字的意思是说,这几个单词是有特殊用途的,保留给编译器用,程序员给变量或者函数起名字是不能用这几个单词的。 先来总体介绍下 第一大类是数据类型类,一共14个: **signed unsigned char short int long enu
2016-10-14 14:39:43 800
原创 CSR 1010 PIO demo
使用的是bluechio的开发板。PIO 9/10/11是红绿蓝三色灯,PIO拉低则灯会亮。PIO1连接了按键,按键按下时接地。/****************************************************************************** * Copyright 2012-2015 Qualcomm Technologies Inte
2016-09-14 14:45:29 877
原创 CSR环境中的GPIO模拟I2C
碰到个客户,就是不用官方库中的i2c引脚,非要用普通PIO模拟的,没办法,只能自己写了。原理很简单,其实就是GPIO的拉高拉而已。先准备好头文件,将基本的拉高拉低封装一下。#define DELAY 10/* pin definition */#define SDA_PIN (1 << 12)#define SCL_PIN (1 << 14)#define RST_PIN (
2016-09-13 17:41:20 1670
原创 UART环回
UART环回可以测试CPU的uart功能是否正常,是进一步开发的必要步骤。RX信号一般会绑定接收函数,这个callback要尽量短小精悍,最好收到uart数据后立即处理掉,或者存入缓存/内存,然后立即返回。在环回时可以使用串口工具进行调试。有个有意思的地方是,有2个特殊的按键:退格键与回车键。如果是退格键:RX会收到‘\b’字符,这时候要环回'\b'‘空格’'\b'这3个字符才
2016-09-09 13:12:10 1689
原创 CSR系列开发板的编程器/烧写器
本文总结下我目前见过的CSR系列开发板的烧写器。感觉CSR的芯片用的是改装后的SPI总线,因为除了SPI标准的MO,MI,clk和enable以外,还有一个CSB,不知道作用是什么,回头我再查下资料。因此,编程器就只能使用CSR官方发布的了(貌似有破解版,但是没用过)。先来介绍第一款,是5348开发板上用到的,板载的调试器。如上图中红色方框,是编程器部分的电
2016-09-05 11:52:11 3684
转载 100个0.1相加等于多少?
原文地址:https://community.esm-cn.com/t/100-0-1/2147/3一、前言在大家的认知过程中可能会认为计算机是不会出现计算错误的,但是实际上,依然存在程序运行后无法得到正确数值的情况。其中,最经典的就是小数运算。(做金融的一定要小心!!!)二、引入在我们的世界里面,100个0.1相加就是10,这个
2016-08-26 09:11:30 2831
原创 CSR芯片产品列表
CSR所有系列蓝牙芯片,例如—BC3系列(例BC31A223,BC358239A等)—BC4系列(例BC413159A06,BC417143B,BC419143A等),—BC5系列(例BC57F687,BC57E687,BC57H687C等),—BC6系列(例BC6110,BC6130,BC6145,CSR6030,BC6888等),—BC8系列(例CSR8510/12,CSR
2016-07-26 09:52:07 6717
原创 CSR B5348/B8675 消息的取消
CSR体系中的消息除了正常的send-deliver-free这一条线外,还可以在VM分发消息前,将这条消息取消掉。例如,使用MessageSendLater函数设置了4000ms以后发送一个id为0x000d的消息。但是时间过了25ms,app又取消了id为0x000d的消息,那么在Messages调试窗口中就会看到Cancel (due 3975ms) task 2400 id 0
2016-07-11 13:58:22 752
原创 怎么判断大小端呢?
字节序,是指多字节的变量,使用哪一种顺序来存储每个字节。先保存高位的字节,即big endian,也叫网络序。先保存低位的字节,即little endian。利用union来判断运行代码的系统是大端模式还是小端模式:#include int main(int argc, char *argv[]){ union {long i; char ch;}c; ......
2016-04-06 18:19:51 853
原创 每个基本数据类型能占用多少内存空间呢?
利用一个简单的宏来显示每种数据类型和它占用多少内存空间。需要说明的一点是,编译的时候sizeof就已经被替换成该变量对应的空间大小了,运行的时候只是把改常数打印出来。#include #define SPACE(T) printf("%20s:%5d B \n",#T,sizeof(T))#define NEWLINE() printf("\n")int main(void){
2016-04-06 17:22:24 3642
原创 冒泡排序
#include #include //int data[] = {5,2,1,3,4};int data[] = {2,4,6,5,3,1,0};//int data[] = {0,1,2,3,4,5};//int data[] = {6,5,4,3,2,1,0};int bubble_sort(int data[],int n){ int temp; int i, j,
2016-01-22 11:44:18 445
原创 多线程模拟-爸爸放橙子给女儿吃,妈妈放苹果给儿子吃
模拟这个游戏:有一个空盘子一次只能放入一个水果。爸爸放入一个橙子,只有女儿会拿起来吃。妈妈放入一个苹果,只有儿子会拿起来吃。依次生成这4个线程,利用信号量来同步这4个线程,利用互斥锁来解决爸爸和妈妈争用空盘子的冲突,防止死锁。当儿子一共吃过8个苹果时,结束整个游戏。#include #include #include #include #include #include
2016-01-21 15:56:21 3437
原创 线程等待与线程的返回值
此demo中,线程随机生成一个数,并将此随机数通过返回代码传递给主进程。主进程获取到该随机数后打印出来。需要说明的是:线程的传入参数和返回值类型都是void*,所以可以通过强制类型转换传递任何类型。#include #include void *fn(void *arg){ char num; srand(time(0)); num = rand()%100; sleep
2016-01-21 14:53:05 999
原创 传递参数给线程
在demo1的基础上,添加了传递参数给线程。这样可以更明显地看到,进程依次创建了线程,但是线程的执行顺序却是不固定的。#include #include void *fn(void *arg){ printf("thread #%u : get arg=, my PID=%d\n", \ (unsigned int)pthread_self(), (int)arg, getpi
2016-01-21 13:40:11 437
原创 创建线程与获取线程标识
此demo中进程创建了一批线程,可以看到:所有线程共享进程ID,但是有自己的线程ID。创建成功的线程的执行顺序是不确定的。
2016-01-21 11:53:22 1107
转载 蓝牙开发者基础知识
一、 关于蓝牙芯片公司:CSR公司是目前最大的蓝牙芯片的全球供应商,大约占有50%的市场份额,同时也提供WiFi和VoIP解决方案。 CSR公司在蓝牙芯片市场的主要竞争对手是Broadcom。学生用的蓝牙芯片基本都是用CSR的,就像学生开发zigbee都用TI的CC2531一样,CSR的芯片就像CC2531一样,是集成了RF收发模块的MCU,只不过CC2531是用8051内核的,还有AD,串口
2016-01-19 11:12:10 3425
原创 约瑟夫问题-链表实现
约瑟夫问题_百度百科 http://baike.baidu.com/link?url=EuXtXV4hPi1AtRdzY0vMPG1gQg1kt3uCS5g4Bfy_RzWXAnDwwjJkhxWdRfk2LPnkqubRBTb52CXEaUa5jbIRaK#include#include#include#define RECURSION//Monkey Node definition
2015-12-31 17:24:02 501
原创 约瑟夫问题-数组实现
约瑟夫问题_百度百科 http://baike.baidu.com/link?url=EuXtXV4hPi1AtRdzY0vMPG1gQg1kt3uCS5g4Bfy_RzWXAnDwwjJkhxWdRfk2LPnkqubRBTb52CXEaUa5jbIRaK#include #include #include int main(void){ int total,out,sta
2015-12-31 17:22:56 1276
原创 多线程之计算文件单词数量-线程参数-互斥锁访问共享区
以下代码只是为演示多个线程使用互斥锁访问共享区,未考虑效率因素。不过可以自行修改验证,2个线程比1个线程所花时间在用户态更短,在内核态较多,耗费时间就是在2个线程争用mutex锁上。#include #include #include pthread_mutex_t c_lock; /* count lock */long total_words = 0;int main(
2015-12-31 14:19:04 839
原创 shell编程之for循环-写指定数量的单词到文件
脚本带1个参数,指定往文件写入多少个单词。生成文件后可以用系统自带的命令wc啦检验。(wc,word count程序,一般系统已集成)#!/bin/bashFILE=./file#echo "in $#"if [ $# -eq 1 ]then rm -f $FILE i=1 while [ $i -le $1 ] do echo -n "one " >> $FILE
2015-12-31 13:39:06 1648
Ultimate_Guide_Arduino_Sensors_Modules_arduino传感器/模块开发终极指南
2019-01-29
I2C specUM10204 I2C总线协议
2016-03-21
usb serial and 串口工具
2015-06-17
linux学习资料集锦
2015-05-21
饮料条形码.手机淘宝
2014-08-19
usb2.0spec
2012-03-19
C程序设计语言_第2版_新版_无广告
2011-11-07
路由器详细命令行配置录像
2011-08-22
C语言字符串各函数-具体实现
2011-07-25
GSM11.11全部精华
2011-06-28
算法设计与实现-分治法
2011-04-19
算法设计与实现-动态规划
2011-04-19
算法设计与实现-递归算法
2011-04-19
算法设计与实现-贪婪法
2011-04-19
11 Steps To Create A Successful Website
2011-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人