20240105移远的4G模块EC20在Ubuntu 20.04.6 LTS下使用联通5G卡上网的步骤

20240105移远的4G模块EC20在Ubuntu 20.04.6 LTS下使用联通5G卡上网的步骤
2024/1/5 10:11


缘起:需要在Firefly的AIO-3399J开发板上调试移远的4G模块EC20(Android10/11/12),需要现在先测试EC20的好坏!
陶老板告诉我找一个USB2.0转mini PCIE的转接板接上去,这样就可以直接测试了。

https://item.taobao.com/item.htm?_u=5ju3ku33b5&id=580834633704&spm=a1z09.2.0.0.78122e8d0M24m1&skuId=4045144447321
4G模块转接板开发板迷你minipcie转USB移远EC20华为域格SIM/UIM
已售 2000+
¥23

https://detail.tmall.com/item.htm?_u=5ju3kuc8cc&id=45401367506&spm=a1z09.2.0.0.78122e8d0M24m1&skuId=4274333149921
CY辰阳 MINI PCIE转USB 3G 4G模块 测试开发板NGFF 含SIM UIM卡座
已售 400+
¥32

请【严重注意】注意SIM卡的方向!

【需要2G的大卡,也就是卡套外面还有卡套!】
 

昨晚WIN10上通过USB延长线接上去明显需要驱动程序。
今天在Ubuntu20.04.6下的USB3.0接口【蓝色口】插入【装上底板】EC20。

rootroot@rootroot-X99-Turbo:~$ 
rootroot@rootroot-X99-Turbo:~$ cat /etc/issue
Ubuntu 20.04.6 LTS \n \l

rootroot@rootroot-X99-Turbo:~$ 
rootroot@rootroot-X99-Turbo:~$ uname -r
5.15.0-91-generic
rootroot@rootroot-X99-Turbo:~$ uname -a
Linux rootroot-X99-Turbo 5.15.0-91-generic #101~20.04.1-Ubuntu SMP Thu Nov 16 14:22:28 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

rootroot@rootroot-X99-Turbo:~$ 
rootroot@rootroot-X99-Turbo:~$ 
 


通过lsusb命令,很容易发现已经找到了EC20了。

插入EC20之前:

Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 173d:0500 QSENN 
Bus 003 Device 003: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 

插入EC20之后:

Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 173d:0500 QSENN 
Bus 003 Device 004: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
Bus 003 Device 003: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

拔掉EC20之后:

Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 173d:0500 QSENN 
Bus 003 Device 003: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 

dmesg内核信息:
插入EC20之前:
[   10.146990] rfkill: input handler disabled
[  319.666131] loop12: detected capacity change from 0 to 82800
[  319.965153] audit: type=1400 audit(1704417854.208:40): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine" pid=2597 comm="apparmor_parser"
[  319.966389] audit: type=1400 audit(1704417854.212:41): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=2597 comm="apparmor_parser"
[  320.513136] audit: type=1400 audit(1704417854.756:42): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap-update-ns.snap-store" pid=2599 comm="apparmor_parser"
[  320.537680] audit: type=1400 audit(1704417854.784:43): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.hook.configure" pid=2601 comm="apparmor_parser"
[  320.546954] audit: type=1400 audit(1704417854.792:44): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.snap-store" pid=2602 comm="apparmor_parser"
[  320.547870] audit: type=1400 audit(1704417854.792:45): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.ubuntu-software-local-file" pid=2604 comm="apparmor_parser"
[  320.561320] audit: type=1400 audit(1704417854.804:46): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.ubuntu-software" pid=2603 comm="apparmor_parser"
[  321.844676] loop13: detected capacity change from 0 to 8
[  322.196156] audit: type=1400 audit(1704417856.440:47): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine" pid=2708 comm="apparmor_parser"
[  322.225387] audit: type=1400 audit(1704417856.472:48): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=2708 comm="apparmor_parser"
[  322.466790] audit: type=1400 audit(1704417856.712:49): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="snap.snap-store.hook.configure" pid=2711 comm="apparmor_parser"


插入EC20之后:
[   10.146990] rfkill: input handler disabled
[  319.666131] loop12: detected capacity change from 0 to 82800
[  319.965153] audit: type=1400 audit(1704417854.208:40): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine" pid=2597 comm="apparmor_parser"
[  319.966389] audit: type=1400 audit(1704417854.212:41): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=2597 comm="apparmor_parser"
[  320.513136] audit: type=1400 audit(1704417854.756:42): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap-update-ns.snap-store" pid=2599 comm="apparmor_parser"
[  320.537680] audit: type=1400 audit(1704417854.784:43): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.hook.configure" pid=2601 comm="apparmor_parser"
[  320.546954] audit: type=1400 audit(1704417854.792:44): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.snap-store" pid=2602 comm="apparmor_parser"
[  320.547870] audit: type=1400 audit(1704417854.792:45): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.ubuntu-software-local-file" pid=2604 comm="apparmor_parser"
[  320.561320] audit: type=1400 audit(1704417854.804:46): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.ubuntu-software" pid=2603 comm="apparmor_parser"
[  321.844676] loop13: detected capacity change from 0 to 8
[  322.196156] audit: type=1400 audit(1704417856.440:47): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine" pid=2708 comm="apparmor_parser"
[  322.225387] audit: type=1400 audit(1704417856.472:48): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=2708 comm="apparmor_parser"
[  322.466790] audit: type=1400 audit(1704417856.712:49): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="snap.snap-store.hook.configure" pid=2711 comm="apparmor_parser"

[  490.241995] usb 3-2: new high-speed USB device number 4 using xhci_hcd
[  490.399983] usb 3-2: New USB device found, idVendor=2c7c, idProduct=0125, bcdDevice= 3.18
[  490.399992] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  490.399996] usb 3-2: Product: Android
[  490.399999] usb 3-2: Manufacturer: Android
[  490.441771] usbcore: registered new interface driver usbserial_generic
[  490.441804] usbserial: USB Serial support registered for generic
[  490.444564] usbcore: registered new interface driver cdc_wdm
[  490.447789] usbcore: registered new interface driver option
[  490.447801] usbserial: USB Serial support registered for GSM modem (1-port)
[  490.447909] option 3-2:1.0: GSM modem (1-port) converter detected
[  490.448022] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB0
[  490.448074] option 3-2:1.1: GSM modem (1-port) converter detected
[  490.448166] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB1
[  490.448208] option 3-2:1.2: GSM modem (1-port) converter detected
[  490.448282] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB2
[  490.448315] option 3-2:1.3: GSM modem (1-port) converter detected
[  490.448406] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB3
[  490.448810] qmi_wwan 3-2:1.4: cdc-wdm0: USB WDM device
[  490.449917] qmi_wwan 3-2:1.4 wwan0: register 'qmi_wwan' at usb-0000:00:14.0-2, WWAN/QMI device, d6:49:5d:75:15:67
[  490.449948] usbcore: registered new interface driver qmi_wwan

拔掉EC20之后:
[   10.146990] rfkill: input handler disabled
[  319.666131] loop12: detected capacity change from 0 to 82800
[  319.965153] audit: type=1400 audit(1704417854.208:40): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine" pid=2597 comm="apparmor_parser"
[  319.966389] audit: type=1400 audit(1704417854.212:41): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=2597 comm="apparmor_parser"
[  320.513136] audit: type=1400 audit(1704417854.756:42): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap-update-ns.snap-store" pid=2599 comm="apparmor_parser"
[  320.537680] audit: type=1400 audit(1704417854.784:43): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.hook.configure" pid=2601 comm="apparmor_parser"
[  320.546954] audit: type=1400 audit(1704417854.792:44): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.snap-store" pid=2602 comm="apparmor_parser"
[  320.547870] audit: type=1400 audit(1704417854.792:45): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.ubuntu-software-local-file" pid=2604 comm="apparmor_parser"
[  320.561320] audit: type=1400 audit(1704417854.804:46): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.snap-store.ubuntu-software" pid=2603 comm="apparmor_parser"
[  321.844676] loop13: detected capacity change from 0 to 8
[  322.196156] audit: type=1400 audit(1704417856.440:47): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine" pid=2708 comm="apparmor_parser"
[  322.225387] audit: type=1400 audit(1704417856.472:48): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/snap/snapd/20671/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=2708 comm="apparmor_parser"
[  322.466790] audit: type=1400 audit(1704417856.712:49): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="snap.snap-store.hook.configure" pid=2711 comm="apparmor_parser"
[  490.241995] usb 3-2: new high-speed USB device number 4 using xhci_hcd
[  490.399983] usb 3-2: New USB device found, idVendor=2c7c, idProduct=0125, bcdDevice= 3.18
[  490.399992] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  490.399996] usb 3-2: Product: Android
[  490.399999] usb 3-2: Manufacturer: Android
[  490.441771] usbcore: registered new interface driver usbserial_generic
[  490.441804] usbserial: USB Serial support registered for generic
[  490.444564] usbcore: registered new interface driver cdc_wdm
[  490.447789] usbcore: registered new interface driver option
[  490.447801] usbserial: USB Serial support registered for GSM modem (1-port)
[  490.447909] option 3-2:1.0: GSM modem (1-port) converter detected
[  490.448022] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB0
[  490.448074] option 3-2:1.1: GSM modem (1-port) converter detected
[  490.448166] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB1
[  490.448208] option 3-2:1.2: GSM modem (1-port) converter detected
[  490.448282] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB2
[  490.448315] option 3-2:1.3: GSM modem (1-port) converter detected
[  490.448406] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB3
[  490.448810] qmi_wwan 3-2:1.4: cdc-wdm0: USB WDM device
[  490.449917] qmi_wwan 3-2:1.4 wwan0: register 'qmi_wwan' at usb-0000:00:14.0-2, WWAN/QMI device, d6:49:5d:75:15:67
[  490.449948] usbcore: registered new interface driver qmi_wwan

[  588.322914] r8169 0000:07:00.0 enp7s0: Link is Down
[  882.885532] r8169 0000:07:00.0 enp7s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ 1547.093014] r8169 0000:07:00.0 enp7s0: Link is Down
[ 2378.489893] usb 3-2: USB disconnect, device number 4
[ 2378.490192] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[ 2378.490223] option 3-2:1.0: device disconnected
[ 2378.490445] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[ 2378.490467] option 3-2:1.1: device disconnected
[ 2378.490760] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[ 2378.490783] option 3-2:1.2: device disconnected
[ 2378.491122] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[ 2378.491145] option 3-2:1.3: device disconnected
[ 2378.491534] qmi_wwan 3-2:1.4 wwan0: unregister 'qmi_wwan' usb-0000:00:14.0-2, WWAN/QMI device

ifconfig1【插入EC20之前】

enp7s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:e0:1a:5a:05:21  txqueuelen 1000  (Ethernet)
        RX packets 24262  bytes 35225383 (35.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8729  bytes 635358 (635.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 210  bytes 19375 (19.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 210  bytes 19375 (19.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


ifconfig2【插入EC20之后】

enp7s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:e0:1a:5a:05:21  txqueuelen 1000  (Ethernet)
        RX packets 24859  bytes 35282763 (35.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9148  bytes 684019 (684.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 279  bytes 25188 (25.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 279  bytes 25188 (25.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wwan0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.33.142.10  netmask 255.255.255.252  destination 10.33.142.10
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 14  bytes 1568 (1.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 17  bytes 1214 (1.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


ifconfig5【拔掉EC20之后】

enp7s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:e0:1a:5a:05:21  txqueuelen 1000  (Ethernet)
        RX packets 24859  bytes 35282763 (35.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9148  bytes 684019 (684.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1553  bytes 223810 (223.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1553  bytes 223810 (223.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


根据NEXT点击的上网步骤发一下!


Mobile Broadband off

Mobile Broadband off
Connect
Mobile Broadband Settings

settings
Lock
Power off / Log Out

Cancel
Next
carr
otroot@rootroot-X99-Turbo:~$ifconfig > ifconootroot-X99-Turbo:troot@rootroot-X99-Turbo:~S
Set up a Mobile Broadband ConnectionChoose your Provider's Country or RegionChoose your Provider
This assistant helps you easily set up a mobile broadband connection to a cellular(3G) network.
You will need the following information
Your broadband provider's name
Choose your Billing Plan
D
.Your broadband billing plan name(in some cases) Your broadband billing plan APN (Access Point Name
Confirm Mobile Broadband Settings

Cancel
carrie
Choose your Provider's Country or Region
0
Set up a Mobile Broadband ConnectionChoose your Provider's Country or RegionChoose your Provider
otroot@rootroot-X99-Turbo:~$ifconfig > ifconfrootroot-X99-Turbotroot@rootroot-X99-Turbo;~S
Country or region:
Brunei DarussalamBulgariaBurkina FasoBurundi
Choose your Billing Plan
Confirm Mobile Broadband Settings
0
Cambodia
Cameroon
Canada
Chile
0
chin
4
Colombia
Congo, The Democratic Republic of the

Cancel
R
Set up a Mobile Broadband ConnectionChoose your Provider's Country or RegionChoose your Provider
otroot@rootroot-X99-Turbo:~$ifconfig > ifconfrootroot-X99-Turbotroot@rootroot-X99-Turbo;~S
 Select your provider from a list:
China Mobil
Choose your Billing Plan
China Unicom
Confirm Mobile Broadband Settings
0
4
 I can't find my provider and I wish to set up the connection manually:
My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA)

Cancel
Network
Wired
Cable unplugged
Choose your Billing Plan
o
otroot@rootroot-X99-Turbo:~$ifconfig > ifconfrootroot-X99-Turbotroot@rootroot-X99-Turbo;~S
a
Set up a Mobile Broadband ConnectionChoose your Provider's Country or RegionChoose your Provider
Choose your Billing Plan
Confirm Mobile Broadband Settings
Select your plan:
Default
Selected plan APN (Access Point Name):
3gnet
D
Varning selecting an incorrert plan may result in biling issues for yourid account or may preve
4
f you are unsure of your plan please ask your provider for your plan's APN

CancelBack
Confirm Mobile Broadband Settings
Apply
Set up a Mobile Broadband ConnectionChoose your Provider's Country or RegionChoose your ProviderChoose your Billing Plan
Your mobile broadband connection is configured with the following settings:Your Provider:China unicom, China
8
Your Plan:
p
Confirm Mobile Broadband Settings
Default
APN: 3gnet

Authentication required
A password is recoired era t0mect to "china
Password
Cancel
@
Connect

 Network
Bluetoot
Background
国Appearance
Notifications
Search
:::Applications
Privacy
Online Accounts
sharing
 Sound
Power
Displays
Network
Wired
Cable unplugged
Mobile BroadbandGConnected
Network china Unicom Default
IP Address 10.33.142.10Default Route 10.33.142.9
DNS 120.80.80.80 221.5.88.88
VPN
Not set up
Network Proxy
o
@
off口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/608553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多链混沌:Layer2 格局演变与跨链流动性的新探索

点击查看原文&#xff1a;多链混沌&#xff1a;Layer2 格局演变与跨链流动性的新探索 如今的 Crypto 是一个由多链构成的混沌世界。曾经&#xff0c;以太坊聚集了加密世界绝大多数的流动性与 DeFi 应用&#xff0c;但现在其 TVL 占比已经降到 60% 以下&#xff0c;并仍处于下降…

【51单片机系列】串口通信模块

文章目录 一、计算机串行通信基础二、串行通信的基本概念2.1、异步通信与同步通信2.2、串行通信的传输方向2.3、串行通信常见的错误校验2.4、传输速率 三、串行通信接口标准3.1、RS-232C接口3.2、RS-422A3.3、RS-485接口 四、80C51的串行口4.1、80C51串行口的控制寄存器4.2、80…

Python解析参数的三种方法

今天我们分享的主要目的就是通过在 Python 中使用命令行和配置文件来提高代码的效率 Let’s go! 我们以机器学习当中的调参过程来进行实践&#xff0c;有三种方式可供选择。第一个选项是使用 argparse&#xff0c;它是一个流行的 Python 模块&#xff0c;专门用于命令行解析&…

Spring boot 3 集成rocketmq-spring-boot-starter解决版本不一致问题

安装RocketMQ根据上篇文章使用Docker安装RocketMQ并启动之后&#xff0c;有个隐患详情见下文 Spring Boot集成 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2…

在线表白网页制作源码,无需数据库,自带网站会员付费

源码介绍 通过在线表白&#xff0c;人们可以以一种浪漫的方式表达自己的感情&#xff0c;只需要填写一些基本信息&#xff0c;就能自动生成精美的表白页面。 为了增加网站的收入&#xff0c;用户可以购买网站会员&#xff0c;以使用指定的网页制作模板。 这个系统无需数据库…

计算机网络 —— 物理层

物理层 2.1 物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。 物理层为数据链路层屏蔽了各种传输媒体的差异&#xff0c;使数据链路层只需要考虑如何完成本层的协议和服务&#xff0c;而不必考虑网络具体的传输媒体是什么 2.2 物理层下…

pyqtgraph 教程

pyqtgraph 教程 简介 PyQtGraph 是一个用于科学和工程数据可视化的开源库&#xff0c;基于 PyQt 和 NumPy 构建而成。它提供了丰富的绘图工具和交互功能&#xff0c;可以用于创建高性能的实时数据图表、图像显示和信号处理应用。 以下是 PyQtGraph 的一些特点和功能&#xf…

python 多线程 守护线程

daemon线程&#xff1a;守护线程&#xff0c;优先级别最低&#xff0c;一般为其它线程提供服务。通常&#xff0c;daemon线程体是一个无限循环。如果所有的非daemon线程(主线程以及子线程&#xff09;都结束了&#xff0c;daemon线程自动就会终止。t.daemon 属性&#xff0c;设…

大模型机器人发展史:从VoxPoser、RT2到斯坦福Mobile ALOHA、Google机器人

前言 23年7月&#xff0c;我在朋友圈评估Google的RT2说道&#xff1a; “大模型正在革新一切领域啊&#xff0c;超帅&#xff0c;通过大模型不仅能理解“人话”&#xff0c;还能对“人话”进行推理&#xff0c;并转变为机器人能理解的指令&#xff0c;从而分阶段完成任务。回…

Hyperledger Fabric 权限策略和访问控制

访问控制是区块链网络十分重要的功能&#xff0c;负责控制某个身份在某个场景下是否允许采取某个操作&#xff08;如读写某个资源&#xff09;。 常见的访问控制模型包括强制访问控制&#xff08;Mandatory Access Control&#xff09;、自主访问控制&#xff08;Discretionar…

代码随想录算法训练营第21天 |530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先

530.二叉搜索树的最小绝对差 题目链接&#xff1a;530.二叉搜索树的最小绝对差 给你一棵所有节点为非负值的二叉搜索树&#xff0c;请你计算树中任意两节点的差的绝对值的最小值。 示例&#xff1a; 提示&#xff1a;树中至少有 2 个节点。 &#x1f4a1;解题思路 题目中…

UE5 将类修改目录

有个需求&#xff0c;需要修改ue里面类的位置&#xff0c;默认在Public类下面&#xff0c;我想创建一个二级目录&#xff0c;将所有的类分好位置&#xff0c;方便查看。 上图为创建一个类所在的默认位置。 接下来&#xff0c;将其移动到一个新的目录中。 首先在资源管理器中找…

Android - CrashHandler 全局异常捕获器

官网介绍如下&#xff1a;Thread.UncaughtExceptionHandler (Java Platform SE 8 ) 用于线程因未捕获异常而突然终止时调用的处理程序接口。当线程由于未捕获异常而即将终止时&#xff0c;Java虚拟机将使用thread . getuncaughtexceptionhandler()查询该线程的UncaughtExceptio…

模集 - 240105 - 模集期末速成

TAG - 模集、期末、速成 模集、期末、速成 模集、期末、速成 // – 高数帮 - 期末速成 – //阈值电压晶体管工作区及其判断方法电路公式//体效应沟长调制效应亚阈值效应…// – 阶段考核1 – //集成电路的优势与特点&#xff1a;体积小、速度快、功耗低、电路中以晶体管为主&a…

docker jenkins NB: JAVA_HOME should point to a JDK not a JRE

jenkins java编译错误&#xff1a; 3.5.4/conf/settings.xml The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JRE Build step ‘Invoke top-level Maven t…

软件测试|MySQL主键自增详解:实现高效标识与数据管理

简介 在MySQL数据库中&#xff0c;主键自增是一种常见的技术&#xff0c;用于自动为表中的主键字段生成唯一的递增值。本文将深入讨论MySQL主键自增的原理、用途、使用方法&#xff0c;以及在实践中的注意事项和最佳实践。 主键自增 主键自增的原理 主键自增是通过使用AUTO…

【PostgreSQL在线创建索引(CIC)功能的锁分析以及使用注意】

前一篇文章提到了普通创建索引会阻塞DML操作 PostgreSQL创建索引的锁分析和使用注意 而PostgreSQL里可以使用create index concurrently 在线创建索引(CIC)功能&#xff0c;降低创建索引在表上申请的锁的级别&#xff0c;ShareUpdateExclusiveLock级别的锁和RowExclusiveLock…

【Linux系统编程二十七】:线程的互斥与同步(互斥锁的使用与应用)

【Linux系统编程二十七】&#xff1a;线程的互斥与同步(互斥锁的使用与应用&#xff09; 一.问题:数据不一致(混乱/不安全)1.多线程并发计算不安全2.将数据加载到寄存器的本质 二.解决方法--互斥锁三.互斥锁的概念与接口1.定义锁2.加锁/解锁 四.互斥锁实现原理与应用1.原理&…

[redis] redis主从复制,哨兵模式和集群

一、redis的高可用 1.1 redis高可用的概念 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 高可用的计算公式是1-&#xff08;宕机时间&#xff09;/&#xff08;宕机时…

subversion httpd

通过http访问模式部署SVN的操作步骤如下&#xff1a; 步骤一&#xff1a;安装SVN 步骤二&#xff1a;安装Apache 步骤三&#xff1a;安装mod_dav_svn 步骤四&#xff1a;配置SVN 步骤五&#xff1a;配置Apache 步骤六&#xff1a;浏览器测试访问 步骤一&#xff1a;安装SVN 1.…