嵌入式
文章平均质量分 76
物联网开发
专注某一方面,完成困难的事
展开
-
嵌入式LCD 屏学习
前言文章主要是对我网上知识进行学习,汇总,如有侵权与我联系分类段码液晶屏段码液晶屏早期研发于日本,在80年代引入中国,主要是替代LED数码管(由7个笔段组成,用于显示数字0~9),如计算器、钟表等,显示内容均为数字,也较简单。叫法也有很多种,比如笔段式液晶屏、小尺寸液晶屏、8字屏、图案型液晶屏等。点阵屏点阵屏有分为LCD点阵、LED点阵屏简单的说法就是在一个范围内有很多点组成而来称为像素,点阵LCD像素都是由固定大小的点组成 这些点按照阵列的方式排列;比如12864 就是由横向128原创 2021-04-28 15:22:30 · 1310 阅读 · 0 评论 -
做技术有前途吗?一位老工程师对年轻人的“十大忠告”
1、好好规划自己的路,不要跟着感觉走; 根据个人的理想来安排自己的生活,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,痛快一些,那么就需要慎重安排自己的的轨迹,从一个行业入手逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会以后,钱根本不是问题,频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手。 2、可以做技术的,切不可沉湎于技术; 千万不可一门心思钻营技术,给自转载 2021-03-02 18:22:14 · 673 阅读 · 0 评论 -
EFR32使用zigbee Group功能
写这篇博客,是因为我想使用一下这个功能,但是网上博客写的都是支离破碎的,看下来还是不知道如何操作,有的中英文一大堆!官方文档竟然没有详细介绍,S感觉iliconLabs 代码比NXP的要规范,但说到文档,太少了(我是用的开发板自动更新下载到的文档,真是不给力!)言归正传,在zigbee中有一个Group的概念,用来发送命令到这个“组”中的设备,而不会向其他设备发送,类似TCP/IP 中组播和广播的概念。EFR32 对很多功能封装成了命令,Group的功能也有。为了方便测试,直接用官方SDK环境就行,我原创 2020-07-21 17:15:45 · 1014 阅读 · 0 评论 -
采用git bisect 定位bug
背景:在开发zigbee网关的时候,最新版本代码发现控制反应很慢,在最初SDK测试时是确定没有这个问题的,所以肯定是某一处修改引入了问题,于是想办法确认提交出问题的版本,之前就了解到git 有一个工具可以采用二分方法定位,效率很高百度了一下使用,做一个简单总结。原理是在git版本中确定一个没有问题的原始版本,一个有问题的版本。没有问题的版本需要先测试一下,我是用git reset --hard xxx 回退后测试的。然后开始敲命令测试git bisect start // 开始使用git bisec原创 2020-07-08 14:08:21 · 497 阅读 · 0 评论 -
一种通用的更简单的嵌入式Linux串口验证方法
上面一篇文章中写了一篇利用自己的应用程序测试开发板串口的方法,现在可以直接用系统原生的能力去测试。一种通用的嵌入式Liux串口验证方法可以将测试串口的 TX RX 短接,然后我们一遍操作文件节点写字符,一边显示字符比如测试的是/dev/ttyS3.通常情况下/dev/ttyS0 是用作串口打印的,我们的测试环境是一个串口打印/dev/ttyS0.输入命令 cat /dev/ttyS3 & 后台监控串口,收到会立即打印输出现在执行命令 echo “helloworld” > /dev原创 2020-06-04 10:39:10 · 391 阅读 · 0 评论 -
一种通用的嵌入式Linux串口验证方法
在工作中经常要跟串口打交道,假如有同事给过来一块硬件板,系统也是别人做的,我们只用来在上面开发应用程序,串口的验证更加重要。大概思路如下图在开发板上跑一套应用程序,可以发送数据,可以接收数据。当验证接收数据时,通过PC上的串口助手,通过串口板CH340发送数据到开发板,观察如果接收到数据,证明Linux板 RX正常当验证发送数据时,PC上的串口助手,会监视数据到来。并且过程中,一般会伴随串口板上数据指示灯闪烁。代码从网上参考的//串口相关的头文件 #include<stdio.h&g原创 2020-06-03 15:16:17 · 772 阅读 · 0 评论 -
openWRT支持64M flash
之前在开发板上,使用了支持32M flash的修改,现在支持了64M,只是对固件中dts设备树又进行了修改 如下 主要是对partion@50000这项附:关于dts 32Mflash的支持 原来的 partion@50000{ label = “fireware” reg = <0x50000 0x7b0000>; }; 改为了 partion@50000{ label = “fi原创 2017-07-10 15:54:07 · 2607 阅读 · 0 评论 -
stm8中断使用
工程应用分析 最近的一个项目中用到了stm8s,一个比较重要的知识点就是中断的使用。暂且称stm8s这边做从机,要进行双机通信。stm8s作“从机”接收数据,也可以发送数据给主机。 自定了一个通信协议,一个CLK线,一个DAT线,CLK线总是由主机边控制。类似于I2C通信,CLK为高时,DAT由高到底表示开始。CLK位高时,DAT由低到高表示结束。CLK为高电平时,DAT线数据为保持,为低电平时原创 2016-05-17 17:54:05 · 10881 阅读 · 2 评论 -
u-boot 清bss段
u-boot中,需要用来清bss段,了解一下bss段是什么,为什么要清除。参考知乎上前辈讲解,自己做整理。可执行程序包括BSS段、代码段、数据段。BSS(Block Started by Symbol)通常指用来存放程序中未初始化的全局变量和静态变量的一块内存区域,特点是可读可写,在程序执行之前BSS段会自动清0。所以,未初始化的全局变量在程序执行之前已经成0。摘自百度百科。bss段起源于uni原创 2016-03-15 10:48:51 · 1991 阅读 · 0 评论 -
u-boot中重定位
在学习 u-boot的时候,对程序重定位不理解,不知道为什么要进行重定位,在网上查找资料学习了一下。首先,要了解一下一个程序的生成的四个步骤:预处理、编译、汇编、链接。经过这四步,最终才生成可执行文件bin文件。预处理主要是宏定义的展开,编译主要是进行语法此分析,如我们常见的语法错误,某些函数未定义或者某个变量没有定义等,编译结果生成了.s汇编文件,汇编阶段将.s文件转变成机器可以执行的文件,链接原创 2016-03-15 10:28:33 · 876 阅读 · 0 评论 -
DA14580与ADXL362应用
DA14580 于ADXL362传感器的应用在项目使用中,采用了ADXL362三轴加速度传感器用来读取加速度值,继而经过算法处理,转化为步数和运动状态。 在使用的过程中发现,在开起了睡眠的宏定义之后,计步数据读俩秒钟就挂掉了,原因想必是IC的一些休眠动作导致的 开启了睡眠以后,程序会频繁的调用periph_init函数 然后第一条语句就是会关掉外部电源,所以一开始我的ADXL362初始原创 2016-01-28 16:08:15 · 2784 阅读 · 1 评论 -
Qt笔记一
最近接触做了一下Linxu下的Qt开发,遇到一些问题,现在总结记录一下。我们的设备只支持按键,为了好的用户体验,必须做到按键设置符合人的习惯,Qt很多操作习惯默认都支持鼠标。在使用QcheckBox时,想要上下左右键切换,在基本的处理按键事件,设定光标之外,重要的一点要将他放在QGroupBox中,不然Qt总是使用自己默认的一套光标移动规则。代码简单如下://按键切换,需要放到原创 2015-07-17 17:28:17 · 697 阅读 · 0 评论 -
rmmod提示device busy
刚开始学驱动,找了半天错误,才发现是一个很低级的拼写问题。可以insmod module驱动成功,但是rmmod module时首先一执行即被killed,然后再rmmod 时,提示device is busy。驱动安装成功后,cat /proc/devices 也没有发现驱动设备号建立,应该初始化就有问题,所以更别说要卸载这个驱动了。 最后make编译查看warning消息,发现提示有原创 2015-05-27 15:34:56 · 1685 阅读 · 0 评论 -
ARM9时钟学习
s3c2440时钟控制既可以接外接晶振,或者通过内部电路产生时钟源,或者采用外部提供的时钟源。时钟控制逻辑提供三种时钟:FCLK: 用于CPU核HCLK:AHB(Advanced High Performance Bus)总线上设备,高性能模块。如中断,LCD,DMA等PCLK: APB总线上设备,低快带模块 如UART、I2C等PLL:锁相环,在数字电路中用于原创 2015-05-07 16:24:29 · 690 阅读 · 0 评论