【正点原子FPGA连载】第二十六章红外遥控实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
1)实验平台:正点原子新起点V2开发板
2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113
2)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-300792-1-1.html
3)对正点原子FPGA感兴趣的同学可以加群讨论:994244016
4)关注正点原子公众号,获取最新资料更新
第二十六章红外遥控实验
红外遥控是一种无线、非接触控制技术,具有抗干扰能力强、信息传输可靠、功耗低、易实现等显著特点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。本章我们将使用新起点FPGA开发板接收红外遥控器发出的红外信号,并将数据显示在数码管上,如果监测到重复码,则通过LED灯闪烁指示。
本章分为以下几个章节:
2525.1简介
25.2实验任务
25.3硬件设计
25.4程序设计
25.5下载验证
26.1简介
红外遥控是一种无线、非接触控制技术,由于它不具有像无线电遥控那样可以穿过障碍物去控制被控对象的能力,所以同类产品的红外遥控器,可以有相同的遥控频率或编码,而不会隔墙控制或干扰邻居的家用电器,这对于大批量生产以及在家用电器上普及红外遥控器提供了极大的方便。红外遥控器发射出的实际上是一种红外光(红外线),其波长范围在1mm到760nm之间,而人眼可见光的波长范围一般在400nm到760nm之间,所以我们并不能看到红外遥控器发出的红外光,因此对环境的影响很小,也不会影响临近的无线电设备。
红外遥控器的编码目前广泛使用的是:NEC协议和Philips RC-5协议。新起点FPGA开发板配套的遥控器使用的是NEC协议,其逻辑电平编码格式如图 26.1.1所示。
图 26.1.1 NEC协议逻辑电平编码格式
NEC协议采用PPM调制(Pulse Position Modulation,脉冲位置调制)的形式进行编码,数据的每一位(Bit)脉冲长度为560us,由38KHz的载波脉冲(carrier burst)进行调制,推荐的载波占空比为1/3至1/4。由上图可知,有载波脉冲的地方,其宽度都为560us,而载波脉冲的间隔时间是不同的。逻辑“1”的载波脉冲+载波脉冲间隔时间为2.25ms;逻辑“0”的载波脉冲+载波脉冲间隔时间约为逻辑“1”的一半,也就是1.12ms。
图 26.1.2 NEC协议的数据传输格式
图 26.1.2为NEC协议的数据传输格式。由图可知,传输数据时低位在前,图中的地址码(Address)为0x59,控制码(Command)为0x16。一个信息的发送由9ms的AGC(自动增益控制)载波脉冲开始,用于在早期的IR红外接收器中设置增益;紧接着是4.5ms的空闲信号;随后是地址码和控制码。地址码和控制码分别传输了两次,第二次传输的地址码和控制码都是反码,用于对地址码和控制码做校验,当然,也可以直接忽略地址码反码和控制码反码。每次信息都是按照同步码(9ms载波脉冲+4.5ms空闲信号)、地址码、地址反码、控制码和控制反码的格式进行传输,因此,单次信息传输的时间是固定不变的。
当红外遥控器上的按键被一直按下时,红外遥控器只会发送一次完整的信息,其后会每隔110ms发送一次重复码(也叫连发码)。重复码的数据格式比较简单,同样是由9ms的AGC(自动增益控制)载波脉冲开始,紧接着是2.25ms的空闲信号,随后是560us的载波脉冲,重复码的数据格式如图 26.1.3和图 26.1.4所示。
图 26.1.3 重复码的数据格式
图 26.1.4 一直发送重复码
以上部分是对NEC协议的介绍,也就是红外遥控器发送数据时所遵循的协议规范,接下来我们了解下开发板板载的红外接收头,其型号为HS0038B,实物图和结构框图如图 26.1.5和图 26.1.6所示。
图 26.1.5 HS0038B实物图
图 26.1.6 HS0038B结构框图
红外接收头通常被厂家集成在一个元件中,成为一体化红外接收头。内部集成了红外监测二极管、自动增益放大器(AGC)、带通滤波器(Band Pass)、解调器(Demodulator)等电路。红外遥控器发出的信息经38KHz的载频进行二级调制以提高发射效率,达到降低电源功率的目的,然后再经过红外发射二极管产生红外线向空间中发射。红外接收头通过红外监测二极管,将光信号转换成电信号,经过电路调制之后,最终输出可以被FPGA采集的TTL电平信号。这里要注意的一点是,红外接收头内部的三极管电路具有信号反向的功能,也就是将1变为0,0变为1,那么上面的整个协议则电平反过来接收。9ms本来是高电平,那么将变为低电平,以此类推如图 26.1.7所示,接收解码对应的波形是FPGA最终接收到的红外信号。
图 26.1.7 红外接收解码接收图
下图为红外解码接收到的完整波形。
图 26.1.8 红外解码接收到的完整波形
从图 26.1.8可以看到,地址码为0,控制码为0x15。在一段时间之后,我们还可以收到几个脉冲,这就是NEC协议规定的重复码(连发码),如果一帧数据发送完毕之后,按键仍然没有放开,则发射重复码,可以通过统计重复码来标记按键按下的长短/次数。
下图是红外遥控的按键对应的键码值。
图 26.1.9 红外遥控对应的键码值
需要注意的是,上图中右侧的键码值是以十进制数进行显示的。
26.2实验任务
本节实验任务是使用新起点FPGA开发板接收红外遥控器发出的红外信号,并将数据显示在数码管上;如果监测到重复码,则通过LED灯闪烁指示。
26.3硬件设计
HS0038电路原理图如图 26.3.1所示,图中REMOTE_IN信号为红外接收头的电平输出端。
图 26.3.1 HS0038B电路原理图
本实验的管脚分配如下表所示
表 26.3.1 红外遥控数码管显示实验管脚分配
remote_in input M15 红外遥控输入信号
因为本节实验用到的管脚基本都是数码管的引脚,在数码管实验章节已经给出了,这里就不再提供TCL约束文件了。
26.4程序设计
根据实验任务可大致规划出控制流程,红外驱动模块解析红外数据,将控制码输出至数码管驱动模块,重复码有效信号输出至LED控制模块。数码管驱动模块将对应的位选和段选信号发送至数码管,使相应的数字显示在数码管上,LED控制模块根据重复码信号控制LED灯的亮灭。系统框图如下所示。
图 26.4.1 红外遥控实验系统框图
顶层模块原理图如下所示
图 26.4.2 顶层模块原理图
FPGA顶层(top_remote_rcv)例化了以下两个模块:红外驱动模块(remote_rcv)和数码管动态显示模块(seg_led),实现各模块间信号的交互。
顶层模块代码如下:
1 module top_remote_rcv(
2 input sys_clk , //系统时钟
3 input sys_rst_n, //系统复位信号,低电平有效
4 input remote_in, //红外接收信号
5 output [5:0] sel , //数码管位选信号
6 output [7:0] seg_led , //数码管段选信号
7 output led //led灯
8 );
9
10 //wire define
11 wire [7:0] data ;
12 wire repeat_en ;
13
14 //*****************************************************
15 //** main code
16 //*****************************************************
17
18 //数码管显示模块
19 seg_led u_seg_led(
20 .clk (sys_clk),
21 .rst_n (sys_rst_n),
22 .sel (sel),
23 .seg_led (seg_led),
24 .data (data), //红外数据
25 .point (6'd0), //无小数点
26 .en (1'b1), //使能数码管
27 .sign (1'b0) //无符号显示
28 );
29
30 //HS0038B驱动模块
31 remote_rcv u_remote_rcv(
32 .sys_clk (sys_clk),
33 .sys_rst_n (sys_rst_n),
34 .remote_in (remote_in),
35 .repeat_en (repeat_en),
36 .data_en (),
37 .data (data)
38 );
39
40 led_ctrl u_led_ctrl(
41 .sys_clk (sys_clk),
42 .sys_rst_n (sys_rst_n),
43 .repeat_en (repeat_en),
44 .led (led)
45 );
46
47 endmodule
顶层模块完成对其他模块的例化,红外驱动模块输出的控制码(data)连接至数码管显示模块,输出的repeat_en(重复码有效信号)连接至LED控制模块。
由本章简介部分介绍的红外传输时序可以发现,红外传输时序非常适合使用状态机来编写。红外驱动模块状态跳转图如下图所示。
图 26.4.3 红外驱动模块状态跳转图
红外驱动模块使用三段式状态机来解析红外遥控信号,从上图可以比较直观的看到每个状态实现的功能以及跳转都下一个状态的条件。由于一次完整的红外信息和重复码都是以同步码(9ms的低电平)开始,其空闲信号高电平的时间是不一样的,一次完整的红外信息空闲信号高电平时间是4.5ms,而重复码的空闲信号高电平时间是2.25ms。所以我们在st_start_judge状态判断空闲信号高电平的时间,如果时间是4.5ms,则跳转到st_rec_data状态;如果时间是2.25ms,则跳转到st_repeat状态。
红外驱动模块部分代码如下:
1 module remote_rcv(
2 input sys_clk , //系统时钟
3 input sys_rst_n , //系统复位信号,低电平有效
4
5 input remote_in , //红外接收信号
6 output reg repeat_en , //重复码有效信号
7 output reg data_en , //数据有效信号
8 output reg [7:0] data //红外控制码
9 );
10
11 //parameter define
12 parameter st_idle = 5'b0_0001; //空闲状态
13 parameter st_start_low_9ms = 5'b0_0010; //监测同步码低电平
14 parameter st_start_judge = 5'b0_0100; //判断重复码和同步码高电平(空闲信号)
15 parameter st_rec_data = 5'b0_1000; //接收数据
16 parameter st_repeat_code = 5'b1_0000; //重复码
17
18 //reg define
19 reg [4:0] cur_state ;
20 reg [4:0] next_state ;
21
22 reg [11:0] div_cnt ; //分频计数器
23 reg div_clk ; //分频时钟
24 reg remote_in_d0 ; //对输入的红外信号延时打拍
25 reg remote_in_d1 ;
26 reg [7:0] time_cnt ; //对红外的各个状态进行计数
27
28 reg time_cnt_clr ; //计数器清零信号
29 reg time_done ; //计时完成信号
30 reg error_en ; //错误信号
31 reg judge_flag ; //检测出的标志信号 0:同步码高电平(空闲信号) 1:重复码
32 reg [15:0] data_temp ; //暂存收到的控制码和控制反码
33 reg [5:0] data_cnt ; //对接收的数据进行计数
34
35 //wire define
36 wire pos_remote_in ; //输入红外信号的上升沿
37 wire neg_remote_in ; //输入红外信号的下降沿
38
39 //*****************************************************
40 //** main code
41 //*****************************************************
42
43 assign pos_remote_in = (~remote_in_d1) & remote_in_d0;
44 assign neg_remote_in = remote_in_d1 & (~remote_in_d0);
45
46 //时钟分频,50Mhz/(2*(3124+1))=8khz,T=0.125ms
47 always @(posedge sys_clk or negedge sys_rst_n ) begin
48 if (!sys_rst_n) begin
49 div_cnt <= 12'd0;
50 div_clk <= 1'b0;
51 end
52 else if(div_cnt == 12'd3124) begin
53 div_cnt <= 12'd0;
54 div_clk <= ~div_clk;
55 end
56 else
57 div_cnt = div_cnt + 12'b1;
58 end
59
60 //对红外的各个状态进行计数
61 always @(posedge div_clk or negedge sys_rst_n) begin
62 if(!sys_rst_n)
63 time_cnt <= 8'b0;
64 else if(time_cnt_clr)
65 time_cnt <= 8'b0;
66 else
67 time_cnt <= time_cnt + 8'b1;
68 end
69
70 //对输入的remote_in信号延时打拍
71 always @(posedge div_clk or negedge sys_rst_n) begin
72 if(!sys_rst_n) begin
73 remote_in_d0 <= 1'b0;
74 remote_in_d1 <= 1'b0;
75 end
76 else begin
77 remote_in_d0 <= remote_in;
78 remote_in_d1 <= remote_in_d0;
79 end
80 end
81
82 //状态机
83 always @ (posedge div_clk or negedge sys_rst_n) begin
84 if(!sys_rst_n)
85 cur_state <= st_idle;
86 else
87 cur_state <= next_state ;
88 end
89
90 always @(*) begin
91 next_state = st_idle;
92 case(cur_state)
93 st_idle : begin //空闲状态
94 if(remote_in_d0 == 1'b0)
95 next_state = st_start_low_9ms;
96 else
97 next_state = st_idle;
98 end
99 st_start_low_9ms : begin //监测同步码低电平
100 if(time_done)
101 next_state = st_start_judge;
102 else if(error_en)
103 next_state = st_idle;
104 else
105 next_state = st_start_low_9ms;
106 end
107 st_start_judge : begin //判断重复码和同步码高电平(空闲信号)
108 if(time_done) begin
109 if(judge_flag == 1'b0)
110 next_state = st_rec_data;
111 else
112 next_state = st_repeat_code;
113 end
114 else if(error_en)
115 next_state = st_idle;
116 else
117 next_state = st_start_judge;
118 end
119 st_rec_data : begin //接收数据
120 if(pos_remote_in && data_cnt == 6'd32)
121 next_state = st_idle;
122 else
123 next_state = st_rec_data;
124 end
125 st_repeat_code : begin //重复码
126 if(pos_remote_in)
127 next_state = st_idle;
128 else
129 next_state = st_repeat_code;
130 end
131 default : next_state = st_idle;
132 endcase
133 end
134
135 always @(posedge div_clk or negedge sys_rst_n ) begin
136 if (!sys_rst_n) begin
137 time_cnt_clr <= 1'b0;
138 time_done <= 1'b0;
139 error_en <= 1'b0;
140 judge_flag <= 1'b0;
141 data_en <= 1'b0;
142 data <= 8'd0;
143 repeat_en <= 1'b0;
144 data_cnt <= 6'd0;
145 data_temp <= 32'd0;
146 end
147 else begin
148 time_cnt_clr <= 1'b0;
149 time_done <= 1'b0;
150 error_en <= 1'b0;
151 repeat_en <= 1'b0;
152 data_en <= 1'b0;
153 case(cur_state)
154 st_idle : begin
155 time_cnt_clr <= 1'b1;
156 if(remote_in_d0 == 1'b0)
157 time_cnt_clr <= 1'b0;
158 end
159 st_start_low_9ms : begin //9ms/0.125ms = 72
160 if(pos_remote_in) begin
161 time_cnt_clr <= 1'b1;
162 if(time_cnt >= 69 && time_cnt <= 75)
163 time_done <= 1'b1;
164 else
165 error_en <= 1'b1;
166 end
167 end
168 st_start_judge : begin
169 if(neg_remote_in) begin
170 time_cnt_clr <= 1'b1;
171 //重复码高电平2.25ms 2.25/0.125 = 18
172 if(time_cnt >= 15 && time_cnt <= 20) begin
173 time_done <= 1'b1;
174 judge_flag <= 1'b1;
175 end
176 //同步码高电平4.5ms 4.5/0.125 = 36
177 else if(time_cnt >= 33 && time_cnt <= 38) begin
178 time_done <= 1'b1;
179 judge_flag <= 1'b0;
180 end
181 else
182 error_en <= 1'b1;
183 end
184 end
185 st_rec_data : begin
186 if(pos_remote_in) begin
187 time_cnt_clr <= 1'b1;
188 if(data_cnt == 6'd32) begin
189 data_en <= 1'b1;
190 data_cnt <= 6'd0;
191 data_temp <= 16'd0;
192 if(data_temp[7:0] == ~data_temp[15:8]) //校验控制码和控制反码
193 data <= data_temp[7:0];
194 end
195 end
196 else if(neg_remote_in) begin
197 time_cnt_clr <= 1'b1;
198 data_cnt <= data_cnt + 1'b1;
199 //解析控制码和控制反码
200 if(data_cnt >= 6'd16 && data_cnt <= 6'd31) begin
201 if(time_cnt >= 2 && time_cnt <= 6) begin //0.56/0.125 = 4.48
202 data_temp <= {1'b0,data_temp[15:1]}; //逻辑“0”
203 end
204 else if(time_cnt >= 10 && time_cnt <= 15) //1.69/0.125 = 13.52
205 data_temp <= {1'b1,data_temp[15:1]}; //逻辑“1”
206 end
207 end
208 end
209 st_repeat_code : begin
210 if(pos_remote_in) begin
211 time_cnt_clr <= 1'b1;
212 repeat_en <= 1'b1;
213 end
214 end
215 default : ;
216 endcase
217 end
218 end
219
220 endmodule
在代码第47行开始的always语句块中,我们对输入的50MHz的时钟进行分频,得到一个周期为0.125ms(8KHz)的时钟,即以8Khz的时钟对红外信号进行采样。这里之所以对时钟进行分频,是因为红外信号接收的过程用时较长,如果使用50Mhz的时钟采样,内部定义的计数器位宽会比较大,所以我们对输入的时钟做了分频的处理,当然分频得到其它频率的时钟也是可以的。
代码中使用三段式状态机对红外信号进行解析。状态机默认是在st_idle(空闲)状态,并且此时time_cnt_clr的值为1,即time_cnt计数器停止计时;当监测到remote_in_d0为低电平之后,time_cnt_clr的值为0,time_cnt计数器开始计时,此时状态机跳转到st_start_low_9ms状态,在这里主要向大家介绍下程序是如何对9ms低电平的同步码进行计数的。在代码的第160行,当检测到pos_remote_in(红外信号上升沿)为高电平时,说明此时红外信号拉高,即同步码低电平结束,此时判断time_cnt的值是否接近9ms,如果接近9ms,此时开始跳转到st_start_judge状态,否则跳转到空闲状态。程序后面对空闲信号、重复码以及数据的检测方法类似,在此不再赘述。
图 26.4.4为SignalTap抓取的波形图,从图中可以清晰的看到红外驱动模块各个状态跳转的波形图。可以观察到空闲状态时总线为高电平,按下遥控器按键后,发出9ms低电平的同步码和4.5ms高电平的空闲信号,然后发出00000000的地址码和11111111的地址反码;接下来发送10100010的控制码和01011101的控制反码。需要注意的是,红外遥控先发送的是数据的低位,所以控制码为8’b01000101(8’d69),和图中的data(控制码)保持一致。在波形图的最后,接收到了红外遥控器发出的重复码,当程序检测到重复码之后,repeat_en发出一次脉冲信号。
图 26.4.4 SignalTap抓取的波形图
LED控制模块代码如下:
1 module led_ctrl(
2 input sys_clk , //系统时钟
3 input sys_rst_n , //系统复位信号,低电平有效
4
5 input repeat_en , //重复码触发信号
6 output reg led //LED灯
7 );
8
9 //reg define
10 reg repeat_en_d0 ; //repeat_en信号打拍采沿
11 reg repeat_en_d1 ;
12 reg [22:0] led_cnt ; //LED灯计数器,用于控制LED灯亮灭
13
14 //wire define
15 wire pos_repeat_en;
16
17 //*****************************************************
18 //** main code
19 //*****************************************************
20
21 assign pos_repeat_en = ~repeat_en_d1 & repeat_en_d0;
22
23 repeat_en信号打拍采沿
24 always @(posedge sys_clk or negedge sys_rst_n) begin
25 if(!sys_rst_n) begin
26 repeat_en_d0 <= 1'b0;
27 repeat_en_d1 <= 1'b0;
28 end
29 else begin
30 repeat_en_d0 <= repeat_en;
31 repeat_en_d1 <= repeat_en_d0;
32 end
33 end
34
35 always @(posedge sys_clk or negedge sys_rst_n) begin
36 if(!sys_rst_n) begin
37 led_cnt <= 23'd0;
38 led <= 1'b0;
39 end
40 else begin
41 if(pos_repeat_en) begin
42 led_cnt <= 23'd5_000_000; //单次重复码:亮80ms 灭20ms
43 led <= 1'b1; //led亮的时间:4_000_000*20ns=80ms
44 end
45 else if(led_cnt != 23'd0) begin
46 led_cnt <= led_cnt - 23'd1;
47 if(led_cnt < 23'd1_000_000) //led灭的时间:1_000_000*20ns=20ms
48 led <= 1'b0;
49 end
50 end
51 end
52
53 endmodule
LED控制模块代码比较简单,首先检测repeat_en信号的上升沿(如代码的第24行开始的always所示),pos_repeat_en拉高之后,计数器赋值为5_000_000,随后计数器每个周期开始递减1,直到计数到0;在计数器在1_000_000~5_000_000范围内,点亮LED灯,其它情况熄灭LED灯,从而指示红外遥控模块是否检测到重复码。
26.5下载验证
首先将下载器一端连电脑,另一端与开发板上对应端口连接,然后连接电源线并打开电源开关,然后将sof文件下载板子中。
下载完成后,按下遥控器上任意按键,就可以观察数码管上显示的数据了;长按按键的话,可以观察到LED在不停地闪烁。需要注意的是,使用遥控器之前需要先将遥控器后部的塑料绝缘片拔出,否则遥控器无法正常使用。遥控器的实物图如下所示:
图 26.5.1 遥控器的实物图
按下遥控器的按键,开发板上的数码管就会显示对应的键码值,如下图所示:
图 26.5.2 显示键码值
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- C++ 1
C基础语法CC关键字C注释C数据类型c变量类型C 常量修饰符类型C存储类C运算符C C在C的基础上增添了面向对象编程和泛型编程。是一种静态类型、编译式、通用的、大小写敏感的、不规则的编程语言。 C支持面向对象的程序设计及其四大特性:封装、抽象、继承、多态。 C关…...
2024/4/20 1:15:50 - CPVC电力管的性能特色
CPVC电力管的性能特色 CPVC电力管是咱们常用的电力管之一,它是cpvc电力管一种新式的电力管材,它具有高强度、柔韧性好、耐高温、耐腐蚀、阻燃、隔电缘功能杰出、不易老化、质轻、施工便利等长处,目前CPVC电力管现已被广泛的推行使用了。 一&a…...
2024/4/23 17:58:21 - 新开源项目_FastTest基于无障碍服务的自动化测试框架
FastTest项目地址 https://github.com/HuRuWo/FastTest 是什么 一个轻量级【简洁的自动化Andorid端脱机测试框架】 基于无障碍服务 方便测试二次开发导入即可 写在前面 为什么要重新造轮子? 并不是 是一种补充。原本就是个人日常使用的工具。我不太喜欢那些现成的工具和…...
2024/4/20 17:23:53 - 自用分享丨45个自媒体必备工具素材网站
很多小伙伴在做自媒体的时候,在找素材上都会遇到素材不好找、找不到合适的素材问题,今天给大家分享下,我日常写作的时候常用的45个网站,大家可以都测试下,不需要都使用,每个分类选择1-2个适合自己的即可。 …...
2024/4/25 3:23:56 - 搭建Vue环境
1、安装node.js 官网地址: https://nodejs.org/zh-cn/download/ 一直点击“next”,winR,输入“cmd”,输入“node -v”,看是否有版本号2、安装cnpm cmd中输入: npm install -g cnpm --registryhttp://regi…...
2024/4/16 3:06:12 - nginx负载均衡docker部署
一、nginx负载均衡docker部署 3.1 创建文件夹 在home用户目录下 创建redis的相关文件夹 mkdir -p /home/jun/docker/nginx cd /home/jun/docker/nginx 创建三个目录 mkdir shell #构建、启动、停止等脚本 mkdir dockerfile #dockerfile目录 mkdir volumes #挂载配置、日志…...
2024/4/15 7:50:03 - VitePress初始运行报错Package subpath ‘./dist/vue.runtime.esm-bundler.js‘ is not defined by “exports“ in..
VitePress(0.20.0)按照VitePress文档初始化项目后,运行docs:dev脚本报错,错误如下 Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath ‘./dist/vue.runtime.esm-bundler.js’ is not defined by “exports” in F:\work\…...
2024/4/5 6:37:07 - 错误: 找不到或无法加载主类 HelloWorld
没有切换盘符。 之前用jdk13,他有新特性就是不用更改盘符,改成jdk8了运行前要切换。...
2024/4/15 7:50:18 - eMMC(四)——基本命令
目录 1. Basic commands (class 0 and class 1) CMD0 CMD1 CMD2 CMD3 CMD4 CMD5 CMD6 CMD7 CMD8 CMD9 CMD10 CMD12 CMD13 CMD14 CMD15 CMD19 2. Block-oriented read commands (class 2) CMD16 CMD17 CMD18 CMD21 3. Block-oriented write commands (class 4) CMD23 (default) …...
2024/4/15 17:28:59 - AD原理图导入pcb出现报错 Cannot Locate Document
AD原理图导入pcb出现报错 Cannot Locate Document软件版本Altium Designer (21.2.0) 将原理图update到pcb时报错Cannot Locate Document: 因为pcb文件还没有保存,将pcb文件保存一下即可: 参考链接: [1]: https://www.yutu.cn/que…...
2024/4/19 7:59:05 - SQL 考勤打卡问题
1: 业务场景 员工考勤打卡,分早,晚打卡,早上8:00到9:00 为早上打卡时间,这个时间范围内第一次打卡视为有效打卡,本时间段内其它打卡视为重复打卡; 相同情况,晚上下班打卡时间范围为17:00到18:00,这个时间范…...
2024/4/15 7:50:08 - mysql日期操作
截取日期到分钟 left (2021-11-03 10:00:20,16) //截取到前16位获取当前时间前分钟的时间,截取日期到分钟 left (DATE_ADD(now(),INTERVAL -2 MINUTE),16)...
2024/4/19 20:45:13 - myBatis resultMap select 传参
DemoMapper.xml <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"xyz.zq.cloud.web…...
2024/4/20 7:19:42 - 光敏电阻简单应用——晚上灯亮,白天灯灭
光敏电阻就是对光比较敏感一种类型的电阻。 常见光敏电阻有以下特性: 光度越亮,电阻越小;环境越暗,电阻越大。 那么,如何利用光敏电阻特性,在晚上的时候灯可以点亮,白天的时候灯熄灭呢…...
2024/4/24 21:44:13 - 狂神说smbms项目(完整)
目录 resmbms 技术亮点 项目搭建准备工作 登录功能实现 登录功能优化 登录注销功能实现 登录拦截优化 密码修改 优化密码修改使用AJAX 用户管理实现 1. 获取查询的用户数量 2. 实现用户列表展示 3. 获取角色列表 4. 整合资源到Servlet 实现添加用户操作 1. 用户…...
2024/4/24 1:47:37 - 本题要求按照先序遍历的顺序输出给定二叉树的叶结点。
函数接口定义: void PreorderPrintLeaves( BinTree BT ); 其中BinTree结构定义如下: typedef struct TNode *Position; typedef Position BinTree; struct TNode{ElementType Data;BinTree Left;BinTree Right; }; 函数PreorderPrintLeaves应按照先序…...
2024/4/19 11:12:41 - STL:动态内存分配
STL:动态内存分配 参考文献《大道至简:CSTL》 new/delete #include <iostream> #include <memory>using namespace std;int main() {int size;cin >> size;int * arr new int[size];for(int i 0; i < size; i){arr[i] rand();}…...
2024/4/19 12:09:11 - 使用java连接JanusGraph进行操作,hbase报错信息为:Caused by: org.apache.hbase.thirdparty.io.netty.channel.AbstractCh
背景是我用windows上的idea去连接已经配好的虚拟机操作JanusGraph 报错部分截图如下: 报错很奇怪显示的是127.0.0.1即本地的地址我明明连的是虚拟机的环境 部分代码截图如下: 然后在windows中修改C:\Windows\System32\drivers\etc\HOST文件把虚拟机的i…...
2024/4/20 2:25:17 - nacos启动
nacos单机启动 1, linux上面单机启动nacos sh startup.sh -m standalone2,windows上面单机启动nacos 双击start.bat 或者 在cmd窗口 bin 目录下 输入 startup.cmd -m standalone3,浏览器输入,账号 nacos 密码 nacos http://127.0.0.1:88…...
2024/4/15 7:50:23 - 解决Ubuntu下载缓慢问题
目录 1、备份原来的源文件 2. 新建一个sources.list文件 3. 更新apt软件源: Ubuntu 系统自带的源文件,都是国外的源网址,在国内下载安装升级源或者依赖的时候,都比较慢 很难受! 更换国内的源地址,轻松…...
2024/4/24 6:09:48
最新文章
- Tree-V2 实现 全选、反选
使用场景: 需要一个 tree 树形结构体,但是采用 普通的 tree ,在数据量大的时候 会造成 tree 渲染的压力,尤其是在勾选的时候。 element ui plus 中 引入了 “Tree V2 虚拟化树形控件” 具体的内容可以 参考这里 <el-button …...
2024/4/25 10:29:57 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Linux学习-网络UDP
网络 数据传输,数据共享 网络协议模型 OSI协议模型 应用层 实际发送的数据 表示层 发送的数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式(数据报、流式&#…...
2024/4/14 6:29:01 - 最新在线工具箱网站系统源码
内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 系统内置高达72种站长工具、开发工具、娱乐工具等功能。此系统支持本地调用API,同时还自带免费API接口, 是一个多功能性工具程序,支持后台管理、上…...
2024/4/23 4:11:28 - DevOps三步法之反馈:流动是油门,反馈是刹车
打个比方,流动是油门,反馈是刹车。流动是关于行使,反馈是关于安全。车辆要想持续平稳运行,需要油门与刹车良好配合,否则就有可能车毁人亡。核电站需要使核反应处于临界状态,超出临界状态就是核爆炸这也需要…...
2024/4/23 17:59:31 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/23 20:58:27 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/23 13:30:22 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/23 13:28:06 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/24 18:16:28 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/23 13:27:44 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/19 11:57:53 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/23 13:29:53 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/23 13:27:22 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/23 13:28:42 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/23 22:01:21 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/23 13:29:23 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/25 0:00:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/25 4:19:21 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/19 11:59:23 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/19 11:59:44 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/25 2:10:52 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/24 16:38:05 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/23 13:28:14 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/23 13:27:51 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/23 13:27:19 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57