LCD背光调节实验

2023-11-19

不管是使用显示器还是手机,其屏幕背光都是可以调节的,通过调节背光就可以控制屏幕的亮度。在户外阳光强烈的时候可以通过调高背光来看清屏幕,在光线比较暗的地方可以调低背光,防止伤眼睛并且省电。正点原子的三款RGB LCD 也支持背光调节,本章我们就来学习如何调节LCD 背光。

LCD 背光调节简介

正点原子的三个RGB LCD 都有一个背光控制引脚,给这个背光控制引脚输入高电平就会点亮背光,输入低电平就会关闭背光。假如我们不断的打开和关闭背光,当速度足够快的时候就不会感觉到背光关闭这个过程了。这个正好可以使用PWM 来完成,PWM 全称是Pulse Width Modulation,也就是脉冲宽度调制,PWM 信号如图29.1.1 所示:
在这里插入图片描述
PWM 信号有两个关键的术语:频率和占空比,频率就是开关速度,把一次开关算作一个周期,那么频率就是1 秒内进行了多少次开关。占空比就是一个周期内高电平时间和低电平时间的比例,一个周期内高电平时间越长占空比就越大,反之占空比就越小。占空比用百分之表示,如果一个周期内全是低电平那么占空比就是0%,如果一个周期内全是高电平那么占空比就是
100%。

我们给LCD 的背光引脚输入一个PWM 信号,这样就可以通过调整占空比的方式来调整LCD 背光亮度了。提高占空比就会提高背光亮度,降低占空比就会降低背光亮度。重点就在于PWM 信号的产生和占空比的控制,很幸运的是,I.MX6U 提供了PWM 外设,因此我们可以配置PWM 外设来产生PWM 信号。

打开《I.MX6ULL 参考手册》的第40 章“Chapter 40 Pulse Width Modulation(PWM)”,I.MX6U一共有8 路PWM 信号,每个PWM 包含一个16 位的计数器和一个4 x 16 的数据FIFO,I.MX6U的PWM 外设结构如图29.1.2 所示:
在这里插入图片描述
图29.1.2 中的各部分功能如下:
①、此部分是一个选择器,用于选择PWM 信号的时钟源,一共有三种时钟源:ipg_clk、ipg_clk_highfreq 和ipg_clk_32k。
②、这是一个12 位的分频器,可以对①中选择的时钟源进行分频。
③、这是PWM 的16 位计数器寄存器,保存着PWM 的计数值。
④、这是PWM 的16 位周期寄存器,此寄存器用来控制PWM 的频率。
⑤、这是PWM 的16 位采样寄存器,此寄存器用来控制PWM 的占空比。
⑥、此部分是PWM 的中断信号,PWM 是提供中断功能的,如果使能了相应的中断的话就会产生中断。
⑦、此部分是PWM 对应的输出IO,产生的PWM 信号就会从对应的IO 中输出,I.MX6U-ALPHA 开发板的LCD 背光控制引脚连接在I.MX6U 的GPIO1_IO8 上,GPIO1_IO8 可以复用为PWM1_OUT。

可以通过配置相应的寄存器来设置PWM 信号的频率和占空比,PWM 的16 位计数器是个向上计数器,此计数器会从0X0000 开始计数,直到计数值等于寄存器PWMx_PWMPR(x=1~8) + 1,然后计数器就会重新从0X0000 开始计数,如此往复。所以寄存器PWMx_PWMPR 可以设置PWM 的频率。

在一个周期内,PWM 从0X0000 开始计数的时候,PWM 引脚先输出高电平(默认情况下,可以通过配置输出低电平)。采样FIFO 中保存的采样值会在每个时钟和计数器值进行比较,当采样值和计数器相等的话PWM 引脚就会改为输出低电平(默认情况下,同样可以通过配置输出高电平)。计数器会持续计数,直到和周期寄存器PWMx_PWMPR(x=1~8) + 1 的值相等,这样一个周期就完成了。所以,采样FIFO 控制着占空比,而采样FIFO 里面的值来源于采样寄存器PWMx_PWMSAR,因此相当于PWMx_PWMSAR 控制着占空比。至此,PWM 信号的频率和占空比设置我们就知道该如何去做了。

PWM 开启以后会按照默认值运行,并产生PWM 波形,而这个默认的PWM 一般并不是我们需要的波形。如果这个PWM 波形控制着设备的话就会导致设备因为接收到错误的PWM 信号而运行错误,严重情况下可能会损坏设备,甚至人身安全。因此,在开启PWM 之前最好设置好PWMx_PWMPR 和PWMx_PWMSAR 这两个寄存器,也就是设置好PWM 的频率和占空比。

当我们向PWMx_PWMSAR 寄存器写入采样值的时候,如果FIFO 没满的话其值会被存储到FIFO 中。如果FIFO 满的时候写入采样值就会导致寄存器PWMx_PWMSR 的位FWE(bit6)置1,表示FIFO 写错误,FIFO 里面的值也并不会改变。FIFO 可以在任何时候写入,但是只有在PWM 使能的情况下读取。寄存器PWMx_SR 的位FIFOAV(bit2:0)记录着当前FIFO 中有多少个
数据。从采样寄存器PWMx_PWMSAR 读取一次数据,FIFO 里面的数据就会减一,每产生一个周期的PWM 信号,FIFO 里面的数据就会减一,相当于被用掉了。PWM 有个FIFO 空中断,当FIFO 为空的时候就会触发此中断,可以在此中断处理函数中向FIFO 写入数据。

关于I.MX6U 的PWM 的原理知识就讲解到这里,接下来看一下PWM 的几个重要的寄存器,本章我们使用的是PWM1,首先看一下寄存器PWM1_PWMCR 寄存器,此寄存器结构如图29.1.2 所示:

在这里插入图片描述
寄存器PWM1_PWMCR 用到的重要位如下:

FWM(bit27:26):FIFO 水位线,用来设置FIFO 空余位置为多少的时候表示FIFO 为空。设置为0 的时候表示FIFO 空余位置大于等于1 的时候FIFO 为空;设置为1 的时候表示FIFO 空余位置大于等于2 的时候FIFO 为空;设置为2 的时候表示FIFO 空余位置大于等于3 的时候FIFO 为空;设置为3 的时候表示FIFO 空余位置大于等于4 的时候FIFO 为空。

STOPEN(bit25):此位用来设置停止模式下PWM 是否工作,为0 的话表示在停止模式下PWM 继续工作,为1 的话表示停止模式下关闭PWM。

DOZEN(bit24):此位用来设置休眠模式下PWM 是否工作,为0 的话表示在休眠模式下PWM 继续工作,为1 的话表示休眠模式下关闭PWM。

WAITEN(bit23):此位用来设置等待模式下PWM 是否工作,为0 的话表示在等待模式下PWM 继续工作,为1 的话表示等待模式下关闭PWM。

DEGEN(bit22):此位用来设置调试模式下PWM 是否工作,为0 的话表示在调试模式下PWM 继续工作,为1 的话表示调试模式下关闭PWM。

BCTR(bit21):字节交换控制位,用来控制16 位的数据进入FIFO 的字节顺序。为0 的时候不进行字节交换,为1 的时候进行字节交换。

HCRT(bit20):半字交换控制位,用来决定从32 位IP 总线接口传输来的哪个半字数据写入采样寄存器的低16 位中。

POUTC(bit19:18):PWM 输出控制控制位,用来设置PWM 输出模式,为0 的时候表示PWM 先输出高电平,当计数器值和采样值相等的话就输出低电平。为1 的时候相反,当为2 或者3 的时候PWM 信号不输出。本章我们设置为0,也就是一开始输出高电平,当计数器值和采样值相等的话就改为低电平,这样采样值越大高电平时间就越长,占空比就越大。

CLKSRC(bit17:16):PWM 时钟源选择,为0 的话关闭;为1 的话选择ipg_clk 为时钟源;为2 的话选择ipg_clk_highfreq 为时钟源;为3 的话选择ipg_clk_32k 为时钟源。本章我们设置为1,也就是选择ipg_clk 为PWM 的时钟源,因此PWM 时钟源频率为66MHz。

PRESCALER(bit15:4):分频值,可设置为04095,对应着14096 分频。

SWR(bit3):软件复位,向此位写1 就复位PWM,此位是自清零的,当复位完成以后此位会自动清零。

REPEAT(bit2:1):重复采样设置,此位用来设置FIFO 中的每个数据能用几次。可设置0~ 3,分别表示FIFO 中的每个数据能用1~4 次。本章我们设置为0,即FIFO 中的每个数据只能用一次。

EN(bit0):PWM 使能位,为1 的时候使能PWM,为0 的时候关闭PWM。
接下来看一下寄存器PWM1_PWMIR 寄存器,这个是PWM 的中断控制寄存器,此寄存器结构如图29.1.3 所示:
在这里插入图片描述
寄存器PWM1_PWMIR 只有三个位,这三个位的含义如下:

CIE(bit2):比较中断使能位,为1 的时候使能比较中断,为0 的时候关闭比较中断。

RIE(bit1):翻转中断使能位,当计数器值等于采样值并回滚到0X0000 的时候就会产生此中断,为1 的时候使能翻转中断,为0 的时候关闭翻转中断。

FIE(bit0):FIFO 空中断,为1 的时候使能,为0 的时候关闭。

再来看一下状态寄存器PWM1_PWMSR,此寄存器结构如图29.1.4 所示:
在这里插入图片描述
寄存器PWM1_PWMSR 各个位的含义如下:

FWE(bit6):FIFO 写错误事件,为1 的时候表示发生了FIFO 写错误。
CMP(bit5):FIFO 比较事件发标志位,为1 的时候表示发生FIFO 比较事件。
ROV(bit4):翻转事件标志位,为1 的话表示翻转事件发生。
FE(bit3):FIFO 空标志位,为1 的时候表示FIFO 位空。
FIFOAV(bit2:1):此位记录FIFO 中的有效数据个数,有效值为0~4,分别表示FIFO 中有0~ 4 个有效数据。

接下来是寄存器PWM1_PWMPR 寄存器,这个是PWM 周期寄存器,可以通过此寄存器来设置PWM 的频率,此寄存器结构如图29.1.5 所示:
在这里插入图片描述

从图29.1.5 可以看出,寄存器PWM1_PWMPR 只有低16 位有效,当PWM 计数器的值等于PERIOD+1 的时候就会从0X0000 重新开始计数,开启另一个周期。PWM 的频率计算公式如下:

PWMO(Hz) = PCLK(Hz) / (PERIOD + 2)

其中PCLK 是最终进入PWM 的时钟频率,假如PCLK 的频率为1MHz,现在我们要产生一个频率为1KHz 的PWM 信号,那么就可以设置PERIOD = 1000000 / 1000 – 2 = 998。

最后来看一下寄存器PWM1_PWMSAR,这是采样寄存器,用于设置占空比的,此寄存器结构如图29.1.6 所示:
在这里插入图片描述

此寄存器也是只有低16 位有效,为采样值。通过这个采样值即可调整占空比,当计数器的值小于SAMPLE 的时候输出高电平(或低电平)。当计数器值大于等于SAMPLE,小于寄存器PWM1_PWMPR 的PERIO 的时候输出低电平(或高电平)。同样在上面的例子中,假如我们要设置PWM 信号的占空比为50%,那么就可以将SAMPLE 设置为(PERIOD + 2) / 2 = 1000 / 2=500。

关于PWM 有关的寄存器就介绍到这里,关于这些寄存器详细的描述,请参考《I.MX6ULL参考手册》第2480 页的40.7 小节。本章我们使用I.MX6U 的PWM1,PWM1 的输出引脚为GPIO1_IO8,配置步骤如下:

1、配置引脚GPIO1_IO8
配置GPIO1_IO08 的复用功能,将其复用为PWM1_OUT 信号线。

2、初始化PWM1
初始化PWM1,配置所需的PWM 信号的频率和默认占空比。

3、设置中断
因为FIFO 中的采样值每个周期都会少一个,所以需要不断的向FIFO 中写入采样值,防止其为空。我们可以使能FIFO 空中断,这样当FIFO 为空的时候就会触发相应的中断,然后在中断处理函数中向FIFO 写入采样值。

4、使能PWM1
配置好PWM1 以后就可以开启了。

硬件原理分析

本试验用到的资源如下:
①、指示灯LED0。
②、RGB LCD 接口。
③、按键KEY0

本实验用到的硬件原理图参考第二十四章,本章实验我们一开始设置RGB LCD 的背光亮度PWM 信号频率为1KHz,占空比为10%,这样屏幕亮度就很低。然后通过按键KEY0 逐步的提升PWM 信号的占空比,按照10%步进。当达到100%以后再次按下KEY0,PWM 信号占空比回到10%重新开始。LED0 不断的闪烁,提示系统正在运行。

实验程序编写

本实验对应的例程路径为:开发板光盘-> 1、裸机例程-> 20_pwm_lcdbacklight。

本章实验在上一章例程的基础上完成,更改工程名字为“backlight”,然后在bsp 文件夹下创建名为“backlight”的文件夹,然后在bsp/backlight 中新建bsp_backlight.c 和bsp_backlight.h这两个文件。在bsp_backlight.h 中输入如下内容:

1 #ifndef _BACKLIGHT_H
2 #define _BACKLIGHT_H
3 /***************************************************************
4 Copyright © zuozhongkai Co., Ltd. 1998-2019. All rights reserved.
5 文件名: bsp_backlight.c
6 作者: 左忠凯
7 版本: V1.0
8 描述: LCD背光PWM驱动头文件。
9 其他: 无
10 论坛: www.openedv.com
11 日志: 初版V1.0 2019/1/22 左忠凯创建
12 ***************************************************************/
13 #include "imx6ul.h"
14
15 /* 背光PWM结构体*/
16 struct backlight_dev_struc
17 {
18 unsigned char pwm_duty; /* 占空比*/
19 };
20
21 /* 函数声明*/
22 void backlight_init(void);
23 void pwm1_enable(void);
24 void pwm1_setsample_value(unsigned int value);
25 void pwm1_setperiod_value(unsigned int value);
26 void pwm1_setduty(unsigned char duty);
27 void pwm1_irqhandler(void);
28
29 #endif

文件bsp_backlight.h 文件内容很简单,在第16 行定义了一个背光PWM 结构体,剩下的就是函数声明。在文件bsp_backlight.c 中输入如下内容:

1 #include "bsp_backlight.h"
2 #include "bsp_int.h"
3 #include "stdio.h"
4
5 struct backlight_dev_struc backlight_dev; /* 背光设备*/
6
7 /*
8 * @description : pwm1中断处理函数
9 * @param : 无
10 * @return : 无
11 */
12 void pwm1_irqhandler(void)
13 {
14 if(PWM1->PWMSR & (1 << 3)) /* FIFO为空中断*/
15 {
16 /* 将占空比信息写入到FIFO中,其实就是设置占空比*/
17 pwm1_setduty(backlight_dev.pwm_duty);
18 PWM1->PWMSR |= (1 << 3); /* 写1清除中断标志位*/
19 }
20 }
21
22 /*
23 * @description : 初始化背光PWM
24 * @param : 无
25 * @return : 无
26 */
27 void backlight_init(void)

文件bsp_blacklight.c 一共有6 个函数,首先是函数pwm1_irqhandler,这个是PWM1 的中断处理函数。需要在此函数中处理FIFO 空中断,当FIFO 空中断发生以后需要向采样寄存器PWM1_PWMSAR 写入采样数据,也就是占空比值,最后要清除相应的中断标志位。第2 个函数是backlight_init,这个是背光初始化函数,在此函数里面会初始化背光引脚GPIO1_IO08,将其复用为PWM1_OUT。然后此函数初始化PWM1,设置要产生的PWM 信号频率和默认占空比,接下来使能FIFO 空中断,注册相应的中断处理函数,最后使能PWM1。第3 个函数是pwm1_enable,用于使能PWM1。第4 个函数是pwm1_setsample_value,用于设置采样值,也就是寄存器PWM1_PWMSAR 的值。第5 个函数是pwm1_setperiod_value,用于设置PWM 信号的频率。第6 个函数是pwm1_setduty,用于设置PWM 的占空比,这个函数只有一个参数duty,也就是占空比值,单位为%,函数内部会根据百分值计算出寄存器PWM1_PWMSAR 应该设置的值。

最后在main.c 文件中输入如下所示内容:

/**************************************************************
Copyright © zuozhongkai Co., Ltd. 1998-2019. All rights reserved.
文件名: main.c
作者: 左忠凯
版本: V1.0
描述: I.MX6U开发板裸机实验21 背光PWM实验
其他: 我们使用手机的时候背光都是可以调节的,同样的I.MX6U-ALPHA
开发板的LCD背光也是可以调节,LCD背光就相当于一个LED灯。
LED灯的亮灭可以通过PWM来控制,本实验我们就来学习一下如何
通过PWM来控制LCD的背光。
论坛: www.openedv.com
日志: 初版V1.0 2019/1/21 左忠凯创建
**************************************************************/

第34 行调用函数backlight_init 初始化屏幕背光PWM。第44 行设置背光PWM 默认占空比为10%。在main 函数中读取按键值,如果KEY0 按下的话就将PWM 信号的占空比增加10%,当占空比超过100%的时候就重回到10%,重新开始。总的来说,main.c 的内容还是很简单的。

编译下载验证

编写Makefile 和链接脚本

修改Makefile 中的TARGET 为backlight,然后在在INCDIRS 和SRCDIRS 中加入“bsp/rtc”,修改后的Makefile 如下:

1 CROSS_COMPILE ?= arm-linux-gnueabihf-
2 TARGET ?= backlight
3
4 /* 省略掉其它代码...... */
5
6 INCDIRS := imx6ul \

第2 行修改变量TARGET 为“backlight”,也就是目标名称为“backlight”。
第26 行在变量INCDIRS 中添加背光PWM 驱动头文件(.h)路径。
第48 行在变量SRCDIRS 中添加背光PWM 驱动驱动文件(.c)路径。
链接脚本保持不变。

编译下载

使用Make 命令编译代码,编译成功以后使用软件imxdownload 将编译完成的backlight.bin文件下载到SD 卡中,命令如下:

chmod 777 imxdownload //给予imxdownload 可执行权限,一次即可
./imxdownload backlight.bin /dev/sdd //烧写到SD 卡中,不能烧写到/dev/sda 或sda1 里面!

烧写成功以后将SD 卡插到开发板的SD 卡槽中,然后复位开发板,默认背光PWM 是10%,PWM 信号波形如图29.4.2.1 所示:
在这里插入图片描述
从图29.4.2.1 可以看出,此时背光PWM 信号的频率为1.00KHz,占空比是10.02%,和我们代码中配置的一致,此时LCD 的屏幕显示如图29.4.2.2 所示:
在这里插入图片描述
图29.4.2.2 就是PWM 占空比为10%的LCD 屏幕显示,可以看出屏幕亮度很低,甚至可以看到屏幕上拍照人的倒影。因为拍照的原因,实际亮度跟实际情况可能会有少许差别。

我们将PWM 的占空比调节到90%,此时的LCD 屏幕亮度肯定会很亮,如图29.4.2.3 所示:
在这里插入图片描述
图29.4.2.3 的屏幕亮度相比图29.4.2.2 就要高很多,这个就是LCD 背光调节的原理,采用PWM 波形来完成,通过调整占空比即可完成亮度调节。

至此,I.MX6U-ALPHA 开发板的所有裸机例程已经全部完成了,通过这几十个裸机例程,我们对I.MX6UL/ULL 这款芯片的外设有了一个基本的了解,为我们以后学习Uboot 和Linux 驱动打下了坚实的基础。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LCD背光调节实验 的相关文章

  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • 警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm64/v8) 不匹配

    警告 请求的映像平台 linux amd64 与检测到的主机平台 linux arm64 v8 不匹配 并且未请求特定平台 docker 来自守护程序的错误响应 无法选择具有功能的设备驱动程序 gpu 我在 mac 上尝试运行此命令时遇到此
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • vagrant ssh -c 并在连接关闭后保持后台进程运行

    我正在编写一个脚本来启动和后台流浪机器内的进程 似乎每次脚本结束和 ssh 会话结束时 后台进程也会结束 这是我正在运行的命令 vagrant ssh c cd vagrant src nohup python hello py gt he
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • Linux中使用管道进行进程间通信

    我已经编写了在 linux 中写入数字以进行管道传输的代码 如下所示 但显示错误 任何人都可以帮助我解决这个问题 基本上该程序的问题陈述如下 一个程序将打开一个管道 向管道写入一个数字 其他程序将打开同一管道 读取数字并打印它们 关闭两个管
  • X11 模式对话框

    如何使用 Xlib 在 X11 中创建模式对话框 模态对话框是一个位于应用程序其他窗口之上的窗口 就像瞬态窗口一样 并且拒绝将焦点给予应用程序的其他窗口 在 Windows 中 当试图从模态窗口夺取焦点时 模态也会通过闪 烁模态窗口的标题栏
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那
  • 这种 bash 文件名提取技术有何用途?

    我有一部分 bash 脚本正在获取不带扩展名的文件名 但我试图了解这里到底发生了什么 是做什么用的 有人可以详细说明 bash 在幕后做了什么吗 如何在一般基础上使用该技术 bin bash for src in tif do txt sr
  • 从 Python 访问 802.11 无线管理帧

    我想从 Linux 上的 Python 嗅探 802 11 管理 探测请求 帧 这可以从 Scapy 中实现 如下所示 coding utf 8 from scapy all import def proc p if p haslayer
  • 未找到 Gem 命令

    我已经在 Ubuntu 10 10 32 位上安装了 gem apt get install gem y 但当我尝试跑步时 gem install something gem 我收到未找到命令的错误 bash gem command not
  • 错误:命令“c++”失败,退出状态为 1

    所以我尝试按照以下说明安装 Pyv8https andrewwilkinson wordpress com 2012 01 23 integrating python and javascript with pyv8 https andre
  • 在 Linux 上创建线程与进程的开销

    我试图回答在 python 中创建线程与进程有多少开销的问题 我修改了类似问题的代码 该问题基本上运行一个带有两个线程的函数 然后运行带有两个进程的相同函数并报告时间 import time sys NUM RANGE 100000000
  • 运行此处编译的 C 程序会导致在另一台服务器上找不到 GLIBC 库错误 - 是我的错还是他们的错?

    此处编译的 C 程序在我们的 Ubuntu 服务器上运行良好 但是当其他人尝试在他们的特定 Linux 服务器上运行它时 他们会收到以下错误 myprog install lib tls libc so 6 version GLIBC 2
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 用于读取文件的 Bash 脚本

    不知道为什么最后一行没有从脚本中删除 bin bash FILENAME 1 while read line do cut d f2 echo line done lt FILENAME cat file 1 test 2 test 3 t
  • 可以作为命令行参数传递多少数据?

    在 Linux 下生成进程时可以发送多少字节作为命令行参数 gahooa 推荐了一篇好文章http www in ulm de mascheck various argmax http www in ulm de mascheck vari
  • 为什么默认情况下不启用 arp 忽略/通告 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个需要经验才能回答的具体问题 为什么 arp ignore arp announce 在 Linux 安装 例如 debian 上默认不启用 有
  • 比较linux中的两个未排序列表,列出第二个文件中的唯一项

    我有 2 个包含号码列表 电话号码 的文件 我正在寻找一种列出第二个文件中第一个文件中不存在的数字的方法 我尝试过各种方法 comm getting some weird sorting errors fgrep v x f second

随机推荐

  • (Java)leetcode-76 Minimum Window Substring(最小覆盖子串)

    题目描述 给你一个字符串 s 一个字符串 t 返回 s 中涵盖 t 所有字符的最小子串 如果 s 中不存在涵盖 t 所有字符的子串 则返回空字符串 注意 如果 s 中存在这样的子串 我们保证它是唯一的答案 示例 1 输入 s ADOBECO
  • .gitignore是干什么的?

    Git忽略文件 gitignore详解 在工程中 并不是所有文件都需要保存到版本库中的 例如 target 目录及目录下的文件就可以忽略 在Git工作区的根目录下创建一个特殊的 gitignore文件 然后把要忽略的文件名填进去 Git就会
  • Nacos启动异常与SpringBoot整合异常记录

    1 nacos启动异常 问题描述 Bean instantiation via factory method failed nested exception is org springframework beans BeanInstanti
  • 【Microsoft Azure 的1024种玩法】七十五.云端数据库迁移之快速将阿里云RDS SQL Server无缝迁移到Azure SQL Database中

    简介 本篇文章主要介绍了如何快速将阿里云RDS SQL Server无缝迁移到Azure SQL Database中 前期文章 Microsoft Azure 的1024种玩法 一 一分钟快速上手搭建宝塔管理面板 Microsoft Azu
  • 华为OD机试真题-修建高铁最低成本【2023Q1】

    题目描述 高铁城市圈对人们的出行 经济的拉动效果明显 每年都会规划新的高铁城市圈建设 在给定城市数量 可建设高铁的两城市间的修建成本列表 以及结合城市商业价值会固定建设的两城市建高铁 请你设计算法 达到修建城市高铁的最低成本 注意 需要满足
  • Go语言入门【09】结构体

    结构体 相比于Java 在Go语言中没有类的概念 但是多了结构体 结构体与Java中的类很像 是表示一系列同一类型或不同类型的数据构成的数据集合 例如可以将学生抽象成一个结构体 每一个学生有以下属性 Name 姓名 Age 年龄 Gende
  • 【前端】实现File、Blob、FormData文件分片上传:

    文章目录 一 效果 二 实现 一 效果 二 实现
  • Android进阶2之 阴影制作(Shadow)

    阴影制作 包括各种形状 矩形 圆形等等 以及文字等等都能设置阴影 阴影制作是什么原理呢 其实很简单 你需要设置阴影的东西被看作一个主层 然后在主层下面画一个阴影层 阴影制作涉及到一个重要函数 public void setShadowLay
  • GPIO 模式配置

    浮空 顾名思义就是浮在空中 上面用绳子一拉就上去了 下面用绳子一拉就沉下去了 开漏 就等于输出口接了个NPN三极管 并且只接了e b c极 是开路的 你可以接一个电阻到3 3V 也可以接一个电阻到5V 这样 在输出1的时候 就可以是5V电压
  • 环境搭建Cocos2d-x学习之创建Android工程和编译

    http www cnblogs com lhming archive 2012 06 27 2566467 html 安装好 相应的环境之后 我们便可以开始创建cocos2d x 的android 工程了 进入cocs2d x目录 用文本
  • 人生之路漫长

    人生不同的时间会遇到不同的人和事 你不知道这些事会对你以后产生什么影响 只希望后面有好的收获
  • Selenium2+python自动化10-登录案例

    前言 前面几篇都是讲一些基础的定位方法 没具体的案例 小伙伴看起来比较枯燥 有不少小伙伴给小编提建议以后多出一些具体的案例 本篇就是拿部落论坛作为测试项目 写一个简单的登录测试脚本 在写登录脚本的时候呢 先要保证流程能跑起来 然后才是去想办
  • angular:路径找不到时会跳回主页

    本地起服时 如果输入的路径无法匹配现有规则 则会跳转至主页 带来一定困扰 最好是统一显示或者导航至特定页面 以便debug const routes Routes path component PageNotFoundComponent
  • 合肥工业大学 汇编语言程序设计 高分实验代码

    感觉最困难的就是写汇编代码了 当时成功完美运行的时候兴奋的像当年第一次 Hello World 一样 且几乎所有关键之处都有注释 需要的朋友自取 链接 https pan baidu com s 1q4nVJ7aK4JEPQ F6PH45R
  • 线程常见方法

    目录 线程常见的方法 设置优先级 Join方法 Sleep方法 setDaemon 线程常见的方法 starto 启动当前线程 表面上调用start方法 实际在调用线程里面的run方法 run 线程类继承Thread类或者实现Runnabl
  • WIN10下各种软件字体模糊解决

    WIN10下uvision字体模糊解决 有时会出现软件模糊的情况 如图 解决方法很简单 重新打开工程我们就能发现字体已经变清晰了 该方法适用于解决大部分win10软件字体模糊的问题 而不仅是keil 有时会出现软件模糊的情况 如图 以我经常
  • 中国太阳能热水器市场营销模式探析与品牌格局调研报告2022版

    中国太阳能热水器市场营销模式探析与品牌格局调研报告2022版 HS HS HS HS HS HS HS HS HS HS HS HS 修订日期 2021年11月 搜索鸿晟信合研究院查看官网更多内容 第一章 太阳能热水器相关概述 1 1 太阳
  • 几分钟教你搞明白vuex的五大属性及其使用方法

    一 认识vuex 1 什么是vuex 我们使用一条数据去管理一个视图 那么这个数据我们就称之为 状态 2 vuex是做什么的 Vuex是一个集中式的存储管理中心 vuex中可以用来存储 数据 状态 vuex也是一个状态管理中心 它也可以进行
  • js——判断是否是链接格式

    JavaScript无法直接判断一个属性是否是链接 但是可以通过检查属性的值是否符合链接的格式 来初步判断该属性是否是一个链接 通常情况下 链接的URL地址以 http 或 https 开头 因此我们可以用正则表达式来匹配该属性的值是否符合
  • LCD背光调节实验

    目录 LCD 背光调节简介 硬件原理分析 实验程序编写 编译下载验证 编写Makefile 和链接脚本 编译下载 不管是使用显示器还是手机 其屏幕背光都是可以调节的 通过调节背光就可以控制屏幕的亮度 在户外阳光强烈的时候可以通过调高背光来看