- 博客(35)
- 收藏
- 关注
原创 全志T507lcd rbg屏调试
当lcd出现拖影,星星点点闪烁时,修改dclk和屏时序的相关值.全志T507把值修改成48Mhz以下时,clk实际输出不是所修改的值.设备树下把clk_tcon_lcd节点下的assigned-clock-parents=<&clk_pll_video0x4>,修改成assigned-clock-parents=<&clk_pll_video1>;
2023-05-15 14:49:30
563
原创 oled屏无法显示问题
oled屏无法显示时,请用万能表量下屏的电源脚、IIC脚,看下是不是3.3v。电压、电流不足会导致屏幕无法显示。在开发项目时,屏的电源脚是通过线性稳压器(LDO)去控制的,在程序初始化时,打开LDO,发现屏幕还是不显示。最后发现是程序跑得太快,在屏还没上电就开始屏幕的初始化,所以导致屏无法显示。解决方法,gpio使能LDO后,延时5毫秒左右,再去屏幕初始化。当然可能其他的单片机不会出现这种问题,我用的wb32主频是96M的,速度快,所以会出现这种问题。...
2022-05-25 14:58:57
11698
原创 定时器中断太快导致主函数的while不执行
定时器设置成捕获功能时,没有分频,并且开启了中断,中断实在太快了,导致cpu没法执行while里的程序。把TIM_IT_Update去掉,关闭中断即可。
2022-04-15 11:33:09
3412
2
原创 51单片机F0是什么意思
F0是用户编程使用的PSW中的D5位,作为表示状态改变的标志!当你的中断或者子程序里面的某个状态改变时,就设置这个标志,然后在执行程序中,检测这个标志,根据标志的情况决定你的程序执行方式!51单片机的PSW寄存器F0(PSW.5)用户使用的状态标志位。这个你可以任意使用。F0:用户定义标志位, 可清零或置一, 用做判别(你自己喜欢怎么用都行);根据F0条件 (F0=1或0)决定程序执行方式F0是寄存器PSW中的一位,编写程序时,可以直接使用,就像TR0,TR1,EA,ET0这些标志位一样,..
2022-04-13 16:34:44
5528
转载 不同电平信号的MCU之间通信
先说一说这个电路的用途:当两个MCU在不同的工作电压下工作(如MCU1工作电压5V;MCU2工作电压3.3V),那么MCU1与MCU2之间怎样进行串口通信呢?很明显是不能将对应的TX、RX引脚直接相连的,否则可能造成较低工作电压的MCU烧毁!图1的“电平双向转换电路”就可以实现不同VDD(芯片工作电压)的MCU之间进行串口通信。该电路的核心在于电路中的MOS场效应管(2N7002)。它和三极管的功能很相似,可做开关使用,即可控制电路的通和断。不过比起三极管,MOS管有挺多优势,后面将会详细讲起。
2022-04-02 10:37:08
1194
原创 CH340G的RTS#和DTR#引脚输出
#就是N,就是取反的意思。 电脑上显示高,那么#/N之后,就是低。硬件常识RTS# = RTS_N = nRTS = DTR# = DTR_N = nDTR =
2022-03-14 11:05:11
2912
原创 WB32F10X时钟配置
/* #define MAINCLK_FREQ_HSE *//* #define MAINCLK_FREQ_32MHz */ /* The HSE clock frequency must be 6MHz/8MHz/12MHz/16MHz *//* #define MAINCLK_FREQ_48MHz */ /* The HSE clock frequency must be 6MHz/8MHz/12MHz/16MHz *//* #define MAINCLK_FREQ_64MHz...
2022-03-14 10:25:32
492
转载 单片机上常用的10个滤波算法
限幅滤波1 方法 根据经验判断两次采样允许的最大偏差值A 每次采新值时判断:若本次值与上次值之差<=A,则本次有效;若本次值与上次值之差>A,本次无效,用上次值代替本次。 2 优缺点克服脉冲干扰,无法抑制周期性干扰,平滑度差。3 代码/* A值根据实际调,Value有效值,new_Value当前采样值,程序返回有效的实际值 */#define A 10char Value;char filter(){ char new_Value; new_Va...
2022-01-20 16:30:00
2908
转载 单片机 | 一种串口高效收发数据的实现方法
摘要:本文在探讨传统数据收发不足之后,介绍如何使用带FIFO的串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法;之后介绍一种特殊的串口数据发送方法,可在避免使用串口发送中断的情况下,提高系统的响应速度。1. 简介串口由于使用简单,价格低廉,配合RS485芯片可以实现长距离、抗干扰能力强的局域网络而被广泛使用。随着产品功能的增多,需要处理的任务也越来越复杂,系统任务也越来越需要及时响应。绝大多数的现代单片机(ARM7、Cortex-M3)串口都带有一定数量的硬件FIFO,本文将介
2022-01-12 10:31:10
793
原创 自举电路原理分析
#自举驱动电路,真的不能再详细了# - 哔哩哔哩https://www.bilibili.com/read/cv5334400自举电路原理分析 - 知乎https://zhuanlan.zhihu.com/p/358543503秒懂电容自举电路 - 知乎https://zhuanlan.zhihu.com/p/73283825
2021-12-27 13:47:57
2257
原创 mos管相关应用文章
USB外部电源与锂电池切换供电电路设计 – 瑞生网https://rationmcu.com/elecjc/3663.html用MOS管防止电源反接的原理 – 瑞生网https://rationmcu.com/elecjc/1806.html经典MOS管电平转换电路http://dianlua.com/001带软开启功能的MOS管电源开关电路http://dianlua.com/004(32条消息) 单片机项目设计中常用的NMOS+PMOS控制电路_Tryple Li Bl.
2021-12-16 17:04:10
327
原创 牛人的单片机架构
https://blog.youkuaiyun.com/qq_38405680/article/details/80412135
2021-08-05 14:09:26
263
转载 一种轻便的裸机多任务实现方法
一个任务的线程: 假设一个任务的执行代码有50步,通常编程只会一次执行完毕,但是我们现在需要想想,因为我们会嫌这个任务总占用着ALU的时间而影响其他任务的执行效果,所以就可以对任务进行划分,把它分为5份,每份10步,这样我们每次执行其中的一个程序片–每次正在运行的程序片我们称为线程。(优快云博客:https://blog.youkuaiyun.com/qq_37272520/article/details/88916568)代码实现首先定义一个跟任务相关的结构体,Delay正是时间片执行的时长,
2021-07-28 10:23:42
391
原创 iic读取心率血氧模块失败问题总结
1.主控板:泰凌微95182.心率血氧模块:天易合芯hx3690iic通信时,发现总是失败,但是用逻辑分析仪捕捉iic信号是正常,通信也成功。用万能表探头接触时也正常,最后发现探头接触模块的电源和地时,通信成功。最后硬件工程师确认模块供电问题。查看原理图,发现电源芯片出来的3.3v给整个主控板供电,硬件工程师猜测是负载不足,然后接了一个电源芯片单独给模块供电。最后发现正常了。...
2021-04-22 16:27:24
1586
转载 STC8H单片机的AUXR辅助寄存器
AUXR.0:S1BRS,如果为1那么串口1的波特率发生器为独立波特率发生器,否则为定时器1AUXR.1:EXTRAM,为1则可以使用内部扩展RAMAUXR.2:BRTx12,为1则独立波特率发生器不分频,否则12分频。AUXR.3:S2SMOD,为1串口2波特率加倍,否则不加倍AUXR.4:BRTR,为1则允许独立波特率允许,否则不允许。AUXR.5:UART_M0x6,为1则串口模式0为2分频,否则为12分频AUXR.6:T1x12,为1则定时器1不分频,否则12分频AUXR.7:T0x.
2021-03-25 14:53:20
4099
1
转载 柔性数组和环形队列
1 定长数组包在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH为 1024。结构体如下://定长缓冲区structmax_buffer{intlen;chardata[MAX_LENGTH];};数据结构的大小 >=sizeof(int)+sizeof(char) * MAX_LENGTH为了防止数据溢出的情况,data 的长度一般会设置得足够大,但也正是因为这样,才会导致数组的冗余。假如发送...
2021-01-18 11:21:13
262
原创 stm32局部变量buf过大导致程序异常
编写程序时,u8 rxbuf[2048];定义过大,超出startup_stm32f10x_md.s文件中Stack_Size EQU 0x00000400的堆栈大小,会导致程序出现异常。异常定义局部变量buf,不能超出堆栈大小。
2021-01-12 19:43:48
730
原创 stm32 iic 读写
#include "I2C.h"#include "bsp.h"#include "stm32f10x_i2c.h"u8 I2C_MODE = I2C_HardMode;u8 I2C_ADDR = I2C_ADDR_DEF;int SDA_DELAY= 8; //SDA数据保持时间int SCL_DELAY= 8; //SCL沿变之后,延时SCL_DEALY,SDA再变int STA_DELAY= 8; //SDA在产生STA时序后,S...
2020-12-17 16:22:42
784
原创 stm32 i2c 读取一个字节代码解释
因为有READ_SDA做判断,理一下程序思路,如果READ_SDA为零:自然receive最低位为零和读入的READ_SDA读到的输入一致,然后通过移位操作读到的最新的一位移到倒数第二位。然后第二次判断READ_SDA,如果这时READ_SDA读到为一:自然进入判断,然后receive自加一,这一步就相当于更新最低位了,然后刚更新的一位继续前移,就达到效果了。其实使用二进制的与操作效率上更高...
2020-12-10 15:06:29
2443
1
原创 msm8909手持机 按键扫码开发
1.设备树gpio_keys节点下添加一个设备节点qr_scan { label = "qr_scan"; gpios = <&msm_gpio 58 0x1>; linux,input-type = <1>; // EV_KEY linux,code = <61>; // KEY_F3自定义键值 ...
2020-11-26 11:13:54
444
原创 触摸屏开发,执行程序出现Couldn‘t open tslib config file : No such file or directory ts_config error!
配置tslib打开/etc/ts.conf文件,找到下面这一行:module_raw input如果上面这行前面有“#”的话就把“#”删除。打开/etc/profile文件,在里面加入如下内容:/etc/profile 文件添加的内容export TSLIB_TSDEVICE=/dev/input/event1export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=/etc/ts.confexport TS...
2020-10-27 10:17:29
1873
1
转载 再谈谈linux input 子系统事件类型
/* 向上层上报一个scancode */input_event(dev, EV_MSC, MSC_SCAN, code);将事件上报给事件处理句柄意味这事件将真正到达事件处理层,对于PC keyboard的event handle就是sysrq,kbd,eventX,这些handle对应的handler分别是sysrq_handler,kbd_handler,evdev_handler。每次上报一个事件,都会由input_pass_event函数去遍历这些event handle再有这些even.
2020-09-25 11:16:42
2072
1
转载 samba配置共享用户home目录
1. 先要安装sambasudo apt-get updatesudo apt-get install samba openssh-server2. 编辑Samba配置文件sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.baksudo vi /etc/samba/smb.conf找到[homes]项,此项默认是注释掉的,取消其注释,然后修改其具体内容,修改成如下:#======================= Share De
2020-06-22 11:42:25
7066
原创 第三库移植 例如jpeg
生成的动态库和静态库的路径放到全局的(交叉编译器)PATH下,库链接是全局搜索的,只要能访问到,具体地址不限制。生成的库需要放到板子的文件系统上。
2020-05-30 13:29:29
191
原创 linux imx6移植SDL_ttf
./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc --prefix=/usr/local/ttf --enable-shared --enable-static --disable-sdltest --with-freetype-prefix=/usr/local/libfreetype --with-sdl-prefix=/usr/local/SDL CPPFLAGS="-I/home/fire/workspace/my-i
2020-05-29 14:08:13
267
转载 arm Linux平台下SDL及扩展库的移植
参考文章:http://blog.youkuaiyun.com/kof98765/article/details/18264859 SDL(Simple DirectMedia Layer)是一个自由的跨平台的多媒体开发包,适用于 游戏、游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件。 基于SDL库目前已提供丰富的函数库,非常方便开发者使用。常用的如下: 1、SDL_Image:提供显示多种格式的图像显示接口,它支持bmp,png,jpeg,gif,tiff等. 2、SDL_Dra
2020-05-20 15:55:07
1512
原创 libcurl 支持 openssl 交叉编译 mips rt5350
首先说明一下,我要这个库的目的。我在RT5350上跑openWRT需要向服务器提交数据,用http协议,且需要ssl加密。经过网上查找只有libcurl合适,于是我用mipsel-openwrt-linux-gcc开始交叉编译libcurl,开始的时候一直在优快云下载 libcurl的源代码包,版本不一样里面Makefile也会有差别,一直报错,具体错误我没记录下来可惜,后来我在github...
2020-05-08 09:45:45
323
转载 Git使用教程
Git使用教程1---世界上最先进的分布式版本控制系统简介Git使用教程2---Git的安装与理论基础Git使用教程3---实战Git使用教程4---状态Git使用教程5---回到过去Git使用教程6---版本对比Git使用教程7---修改最后一次提交、删除文件和重命名文件Git使用教程8---创建和切换分支Git使用教程9---合并和删除分支Git使用教程10---匿名分支和checkout命令...
2020-04-24 16:05:59
565
原创 linux挂载SD卡
(1)通过#fdisk -l命令确认板子上的linux系统是否识别SD卡MP805M板子插入SD卡后显示SD30 slot is without WPmmc1: new high speed SD card at address 5bc0mmcblk0: mmc1:5bc0 SD02G 1.83 GiBmmcblk0: p1[/]# fdisk -lDisk /dev/mtd...
2020-04-22 16:03:57
568
原创 platform_device与platform_driver
通常编写linux字符设备常接触到的file_operations以及miscdevice,然后申请设备号,注册字符设备,没有涉及到设备驱动模型,而驱动模型里,device_driver根本没有涉及到设备操作的函数、file_operations等,只有一些电源管理,热插拔相关的函数。platform_device里也主要是resource的管理,所以感觉两者根本就没关系,也很奇怪为什么要弄两套东...
2020-04-20 13:57:44
359
1
原创 linux交叉编译第三方库
目标平台:飞思卡尔imx6交叉工具链:arm-linux-gnuarebihf-例如编译 libpng 库.这些库被其他程序用于读写png文件。下载libpng源码包 进入http://sourceforge.net/projects/libpng/files/下载一个libpng稳定版本源码包,这里选择libpng2.2.36.tar.gz。交叉编译libp...
2020-04-01 09:31:45
1307
原创 linux交叉编译时,发现找不到include的头文件
INCLUDE := -IincludeCFLAGS := -I/home/fire/workspace/my-imx6-ek140p/tools/fsl-imx-x11-4.9.88-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/includeCFLAGS += -g -Wall -O3 $(DEFINES) $(INCL...
2020-03-30 11:14:35
2821
1
原创 apicloud自定义模块开发运行报找不到类的错误
当进行apicloud开发时,若出现引用的aar包里面的方法类找不到时,可以通过解压aar包,把lib,jni文件放到相应文件夹内,把jar文件改成原本的aar文件名,放到工程的lib下。...
2019-12-12 11:19:25
456
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人