以下是一个tinker board 2s使用的完整的设备树文件,路径为 arch/arm64/boot/dts/rockchip/rk3399-tinker_board_2.dts

/** Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd** This file is dual-licensed: you can use it either under the terms* of the GPL or the X11 license, at your option. Note that this dual* licensing only applies to this file, and not this project as a* whole.**  a) This file is free software; you can redistribute it and/or*     modify it under the terms of the GNU General Public License as*     published by the Free Software Foundation; either version 2 of the*     License, or (at your option) any later version.**     This file is distributed in the hope that it will be useful,*     but WITHOUT ANY WARRANTY; without even the implied warranty of*     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the*     GNU General Public License for more details.** Or, alternatively,**  b) Permission is hereby granted, free of charge, to any person*     obtaining a copy of this software and associated documentation*     files (the "Software"), to deal in the Software without*     restriction, including without limitation the rights to use,*     copy, modify, merge, publish, distribute, sublicense, and/or*     sell copies of the Software, and to permit persons to whom the*     Software is furnished to do so, subject to the following*     conditions:**     The above copyright notice and this permission notice shall be*     included in all copies or substantial portions of the Software.**     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,*     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES*     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND*     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT*     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,*     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING*     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR*     OTHER DEALINGS IN THE SOFTWARE.*//dts-v1/;#include "rk3399-tinker_board_2.dtsi"
#include <dt-bindings/input/input.h>/ {model = "ASUS Tinker Board 2 (Linux Opensource)";compatible = "rockchip,rk3399-tinker_board_2", "rockchip,rk3399";vcc_lcd: vcc-lcd {compatible = "regulator-fixed";regulator-name = "vcc_lcd";gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;startup-delay-us = <20000>;enable-active-high;regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-boot-on;vin-supply = <&vcc5v0_sys>;};vccadc_ref: vccadc-ref {compatible = "regulator-fixed";regulator-name = "vcc1v8_sys";regulator-always-on;regulator-boot-on;regulator-min-microvolt = <1800000>;regulator-max-microvolt = <1800000>;};adc_keys: adc-keys {compatible = "adc-keys";io-channels = <&saradc 1>;io-channel-names = "buttons";poll-interval = <100>;keyup-threshold-microvolt = <1800000>;esc-key {linux,code = <KEY_ESC>;label = "esc";press-threshold-microvolt = <1310000>;};menu-key {linux,code = <KEY_MENU>;label = "menu";press-threshold-microvolt = <987000>;};vol-down-key {linux,code = <KEY_VOLUMEDOWN>;label = "volume down";press-threshold-microvolt = <300000>;};vol-up-key {linux,code = <KEY_VOLUMEUP>;label = "volume up";press-threshold-microvolt = <17000>;};};gpio_keys: gpio-keys {compatible = "gpio-keys";#address-cells = <1>;#size-cells = <0>;autorepeat;pinctrl-names = "default";pinctrl-0 = <&pwrbtn>;button@0 {gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;linux,code = <KEY_POWER>;label = "GPIO Key Power";linux,input-type = <1>;gpio-key,wakeup = <1>;debounce-interval = <100>;};};ext_cam_clk: external-camera-clock {compatible = "fixed-clock";clock-frequency = <27000000>;clock-output-names = "CLK_CAMERA_27MHZ";#clock-cells = <0>;};/delete-node/ rt5651-sound;rt5651_sound: rt5651-sound {compatible = "rockchip,multicodecs-card";rockchip,card-name = "realtek,rt5651-codec";rockchip,codec-hp-det;rockchip,mclk-fs = <256>;rockchip,cpu = <&i2s0>;rockchip,codec = <&rt5651>;status = "okay";};test_power: test-power {status = "okay";};gpio-leds {compatible = "gpio-leds";pwr-led {gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;linux,default-trigger = "default-on";retain-state-suspended = <1>;};act-led {gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;linux,default-trigger="mmc0";};rsv-led {gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_HIGH>;linux,default-trigger="none";};};board_info: board-info {compatible = "board-info";hw-id0 = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;hw-id1 = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;hw-id2 = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;pid-id0 = <&gpio2 RK_PA5 GPIO_ACTIVE_HIGH>;pid-id1 = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;pid-id2 = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;ddr-id1 = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;ddr-id2 = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;pmic-reset = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>;};
};&pinctrl {pinctrl-names = "default";pinctrl-0 = <&gpio_init &test_clkout2>;gpio_init_config {gpio_init: gpio_init {rockchip,pins =<1 7 0 &pcfg_pull_none>,<1 8 0 &pcfg_pull_none>,<1 9 0 &pcfg_pull_none>,<1 10 0 &pcfg_pull_none>,<2 19 0 &pcfg_pull_none>;};};testclk {test_clkout2: test-clkout2 {rockchip,pins =<0 8 RK_FUNC_3 &pcfg_pull_none>;};};
};&pwm0 {status = "disabled";
};&backlight {status = "disabled";compatible = "pwm-backlight";pwms = <&pwm0 0 400000 0>;//f=2500 t=400,000nsbrightness-levels = <0   1   2   3    4    5    6   79    10  11  12  13  14  15  1617  18  19  20  21  22  23  2425  26  27  28  29  30  31  3233  34  35  37  37  38  38  3940  41  42  43  44  45  46  4748  49  50  51  52  53  54  5556  57  58  59  60  61  62  6364  65  66  67  68  69  70  7172  73  74  75  76  77  78  7980  81  82  83  84  85  86  8788  89  90  91  92  93  94  9596  97  98  99 100 101 102 103104 105 106 107 108 109 110 111112 113 114 115 116 117 118 119120 121 122 123 124 125 126 127128 129 130 131 132 133 134 135136 137 138 139 140 141 142 143144 145 146 147 148 149 150 151152 153 154 155 156 157 158 159160 161 162 163 164 165 166 167168 169 170 171 172 173 174 175176 177 178 179 180 181 182 183184 185 186 187 188 189 190 191192 193 194 195 196 197 198 199200 201 202 203 204 205 206 207208 209 210 211 212 213 214 215216 217 218 219 220 221 222 223224 225 226 227 228 229 230 231232 233 234 235 236 237 238 239240 241 242 243 244 245 246 247248 249 250 251 252 253 254 255>;default-brightness-level = <200>;minimal-brightness-level = <26>;soc_enablekl-gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>;enable_delay = <15>;disable_delay = <5>;pinctrl-names = "default";pinctrl-0 = <&pinctrl_lvds_bl_en>;
};&display_subsystem {status = "okay";
};&dsi {status = "okay";mipi_panel: mipi-panel {compatible ="asus-dsi-panel";reg = <0>;status = "okay";};port@2 {mipi_dsi_out: endpoint3 {remote-endpoint = <&sn65dsi84_in>;};};port@3 {mipi_dsi_to_edp_out: endpoint {remote-endpoint = <&sn65dsi86_in>;};};
};&dsi_in_vopb {status = "disabled";
};&edp {status = "disabled";
};&edp_in_vopb {status = "disabled";
};&edp_in_vopl {status = "disabled";
};&dp_in_vopb {status = "disabled";
};&hdmi {status = "okay";pinctrl-0 = <&hdmi_i2c_xfer>, <&hdmi_cec>;#sound-dai-cells = <0>;rockchip,phy-table =<74250000  0x8009 0x0004 0x0272>,<165000000 0x802b 0x0004 0x0209>,<297000000 0x8039 0x0005 0x028d>,<594000000 0x8039 0x0000 0x00f6>,<000000000 0x0000 0x0000 0x0000>;
};&hdmi_in_vopl {status = "disabled";
};&route_hdmi {status = "okay";connect = <&vopb_out_hdmi>;
};&fusb0 {vbus-5v-gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;status = "okay";
};&i2c1 {status = "okay";gsl3673: gsl3673@40 {compatible = "GSL,GSL3673";reg = <0x40>;screen_max_x = <1536>;screen_max_y = <2048>;irq_gpio_number = <&gpio1 20 IRQ_TYPE_LEVEL_LOW>;rst_gpio_number = <&gpio4 22 GPIO_ACTIVE_HIGH>;};imx219: imx219@10 {compatible = "sony,imx219";status = "okay";reg = <0x10>;clocks = <&cru SCLK_CIF_OUT>;clock-names = "xvclk";pinctrl-names = "rockchip,camera_default";pinctrl-0 = <&cif_clkout>;enable-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "RPi_v21";rockchip,camera-module-lens-name = "default";port {imx219_out: endpoint {remote-endpoint = <&mipi_in_ucam0>;data-lanes = <1 2>;};};};ov5647: ov5647@36 {compatible = "ovti,ov5647";status = "disabled";reg = <0x36>;clocks = <&cru SCLK_CIF_OUT>;clock-names = "xvclk";pinctrl-names = "rockchip,camera_default";pinctrl-0 = <&cif_clkout>;enable-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "RPi_v13";rockchip,camera-module-lens-name = "default";port {ov5647_out: endpoint {};};};
};&i2c4 {status = "okay";clock-frequency = <400000>;
};&i2c2 {status = "okay";i2c-scl-rising-time-ns = <345>;i2c-scl-falling-time-ns = <11>;
};&i2c6 {status = "disable";
};&i2c7 {status = "disable";
};&i2c8 {status = "okay";m24c08@50 {compatible = "at,24c08";reg = <0x50>;};dsi_edp_bridge: sn65dsi86@2d {compatible = "asus,sn65dsi86";status = "disabled";reg = <0x2d>;backlight = <&backlight>;edp-width-mm = <344>;edp-height-mm = <193>;data-lanes = <0 1>;lane-polarities = <0 0 0 0>;t1=<0>;t2=<0>;t3=<200>;t4=<20>;t5=<0>;t6=<0>;t7=<0>;t8=<100>;t12= <500>;t14= <15>;t15 = <15>;t16= <15>;t17 = <15>;bpc=<8>;bus-format = <0x100A>;//<MEDIA_BUS_FMT_RGB888_1X24>;dsi,flags = <0x3>;dsi,format = <0>;//MIPI_DSI_FMT_RGB888:dsi-lanes = <4>;pinctrl-names = "default";pinctrl-0 =  <&pinctrl_sn65dsi84_en>, <&pinctrl_lvds_vdd_en>, <&pinctrl_sn65dsi84_irq>, <&pinctrl_pwr_source>;//<&pinctrl_lvds_bl_en>;EN-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;edp_vdd_en-gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;//dsi86_vbl_en-gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>;dsi86_irq-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;pwr_source-gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;display-timings {edp {clock-frequency = <142000000>;hactive = <1920>;vactive = <1080>;hfront-porch = <108>;hsync-len = <48>;hback-porch = <24>;vfront-porch = <10>;vsync-len = <10>;vback-porch = <26>;hsync-active = <0>;vsync-active = <0>;de-active = <1>;pixelclk-active = <0>;};};port {sn65dsi86_in: endpoint2 {remote-endpoint = <&mipi_dsi_to_edp_out>;};};};dsi_lvds_bridge: sn65dsi84@2c {compatible = "asus,sn65dsi84";status = "disabled";reg = <0x2c>;backlight = <&backlight>;lvds-clk-rate = <72000000>;lvds-format = <2>;lvds-bpp = <24>;lvds-width-mm = <476>;lvds-height-mm = <267>;sync_delay = <33>;//dual-link;//test-pattern;t1=<0>;t2=<1>;t3=<500>;t4=<200>;t5=<1>;t6=<0>;t7=<1000>;bpc=<8>;bus-format = <0x100a>;//<MEDIA_BUS_FMT_RGB888_1X24>;dsi,flags = <0x3>;dsi,format = <0>;//MIPI_DSI_FMT_RGB888:dsi-lanes = <4>;pinctrl-names = "default";pinctrl-0 =  <&pinctrl_sn65dsi84_en>, <&pinctrl_lvds_vdd_en>, <&pinctrl_sn65dsi84_irq>, <&pinctrl_pwr_source>;//<&pinctrl_lvds_hdmi_sel>/*lvds_hdmi_sel-gpios = <&5 23 GPIO_ACTIVE_HIGH>;*/EN-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;lvds_vdd_en-gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;dsi84_irq-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;pwr_source-gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;display-timings {lvds {clock-frequency = <144000000>;hactive = <1920>;vactive = <1080>;hfront-porch = <96>;hback-porch = <96>;hsync-len = <64>;vfront-porch = <8>;vsync-len = <4>;vback-porch = <8>;hsync-active = <0>;vsync-active = <0>;de-active = <1>;pixelclk-active = <0>;};};port {sn65dsi84_in: endpoint2 {remote-endpoint = <&mipi_dsi_out>;};};};tinker_mcu: tinker_mcu@45 {compatible = "tinker_mcu";reg = <0x45>;};tinker_mcu_ili9881c: tinker_mcu_ili9881c@36 {compatible = "tinker_mcu_ili9881c";reg = <0x36>;};tinker_ft5406: tinker_ft5406@38 {compatible = "tinker_ft5406";reg = <0x38>;};
};&spi1 {status = "disable";max-freq = <48000000>; /* spi internal clk, don't modify */spi_dev@0 {compatible = "rockchip,spidev";reg = <0>;spi-max-frequency = <48000000>;spi-lsb-first;};
};&spi5 {status = "disable";max-freq = <48000000>;   //spi internal clk, don't modifyspi_dev@0 {compatible = "rockchip,spidev";reg = <0>;   //chip select  0:cs0  1:cs1id = <0>;spi-max-frequency = <48000000>;   //spi output clock};
};&uart0 {status = "disable";
};&uart4 {status = "disable";
};&pwm1 {status = "disable";
};&pwm3 {status = "disable";
};&iep {status = "okay";
};&iep_mmu {status = "okay";
};&isp0_mmu {status = "okay";
};&isp1_mmu {status = "disabled";
};&mipi_dphy_rx0 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam0: endpoint@1 {reg = <1>;remote-endpoint = <&imx219_out>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;dphy_rx0_out: endpoint@0 {reg = <0>;remote-endpoint = <&isp0_mipi_in>;};};};
};&mipi_dphy_tx1rx1 {status = "disabled";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam1: endpoint@1 {reg = <1>;/* Unlinked camera *///remote-endpoint = <&ucam_out1>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;dphy_tx1rx1_out: endpoint@0 {reg = <0>;remote-endpoint = <&isp1_mipi_in>;};};};
};&pcie_phy {status = "okay";
};&pcie0 {status = "okay";
};&rkisp1_0 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp0_mipi_in: endpoint@0 {reg = <0>;remote-endpoint = <&dphy_rx0_out>;};};
};&rkisp1_1 {status = "disabled";port {#address-cells = <1>;#size-cells = <0>;isp1_mipi_in: endpoint@0 {reg = <0>;remote-endpoint = <&dphy_tx1rx1_out>;};};
};&route_edp {status = "disabled";
};&saradc {vref-supply = <&vccadc_ref>;
};&sdmmc {sd-uhs-sdr12;sd-uhs-sdr25;sd-uhs-sdr50;sd-uhs-sdr104;supports-emmc;
};&vopb {assigned-clocks = <&cru DCLK_VOP0_DIV>;assigned-clock-parents = <&cru PLL_VPLL>;status = "okay";
};&vopb_mmu {status = "okay";
};&vopl {assigned-clocks = <&cru DCLK_VOP1_DIV>;assigned-clock-parents = <&cru PLL_CPLL>;status = "okay";
};&vopl_mmu {status = "okay";
};&rockchip_suspend {status = "okay";rockchip,wakeup-config = <(0| RKPM_GPIO_WKUP_EN| RKPM_PWM_WKUP_EN| RKPM_USB_WKUP_EN| RKPM_USB_LINESTATE_WKUP_EN)>;
};&pinctrl {buttons {pwrbtn: pwrbtn {rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;};};mipi_to_lvds {/*pinctrl_lvds_hdmi_sel: lvds_hdmi_sel {rockchip,pins = <0 5 RK_FUNC_GPIO  &pcfg_pull_none>;};*/pinctrl_sn65dsi84_irq: sn65dsi84_irq{rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO  &pcfg_pull_none>;};pinctrl_sn65dsi84_en: sn65dsi84_en {rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO   &pcfg_pull_none>;};pinctrl_lvds_bl_en: lvds_bl_en {rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO  &pcfg_pull_none>;};pinctrl_lvds_vdd_en: lvds_vdd_en {rockchip,pins = <1 RK_PB1 RK_FUNC_GPIO  &pcfg_pull_none>;};pinctrl_pwr_source: pwr_source {rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO  &pcfg_pull_none>;};};
};&fiq_debugger {rockchip,baudrate = <115200>;
};/* DON'T PUT ANYTHING BELOW HERE.  PUT IT ABOVE PINCTRL */
/* DON'T PUT ANYTHING BELOW HERE.  PUT IT ABOVE PINCTRL */
/* DON'T PUT ANYTHING BELOW HERE.  PUT IT ABOVE PINCTRL */

常用的API 有:
找这个节点
test_device_node = of_find_node_by_path(“/adc-keys”); //在设备树节点中查//找test这个节点
孩子个数
ret=of_get_child_count(test_device_node);

属性是否存在

if(**of_property_read_bool**(test_device_node,"enable-active-high")){printk("enable-active-high\n");};

如果属性是string类型的,读取它。
ret = of_property_read_string(test_device_node, “compatible”, &str);

数字类型的
ret = of_property_read_u32(test_device_node, “startup-delay-us”, out_values);

孩子数目:
count =of_get_child_count(np);

第一个孩子:
child = of_get_next_child(np, NULL);

linux设备树of常用API相关推荐

  1. Linux内核 设备树操作常用API【转】

    转自:https://www.linuxidc.com/Linux/2017-02/140818.htm 一文中介绍了设备树的语法,这里主要介绍内核中提供的操作设备树的API,这些API通常都在&qu ...

  2. Linux设备树OF API 中OF的含义

    * 前言 读Linux内核源码或者开源GPL程序源码时,看到各种英文首字母缩写满天飞,英文单词首字母缩写是Unix/Linux C 编程的一个历史习惯,部分英文首字母缩写结合上下文可以找到理解含义,但 ...

  3. Linux设备树语法详解【转】

    转自:http://www.cnblogs.com/xiaojiang1025/p/6131381.html 概念 Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备 ...

  4. Linux 设备树的使用技巧

    Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写.引入了设备树之后,驱动代码只负 ...

  5. 探索Linux设备树:硬件描述与驱动程序的桥梁

    目录标题 引言:Linux设备树简介 | Introduction: Linux Device Tree Overview a. 设备树的背景与发展 | Background and Developm ...

  6. linux设备树笔记__基于msm8x10的基本分析

    由文章,linux设备树笔记__dts基本概念及语法,我们知道了基本概念,知道了大概的设备树节点及其属性,而节点下的属性大多是自定义,除了保留的几个属性,大多从.dts是无法知道其用途的,这个就需要看 ...

  7. 【正点原子MP157连载】第二十三章 Linux设备树-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  8. linux 设备树详解

    2 Linux 设备树 2.1 什么是设备树? 设备树(Device Tree),将这个词分开就是"设备"和"树",描述设备树的文件叫做DTS(Device T ...

  9. Linux设备树led,linux设备树下LED灯控制

    linux设备树下LED灯控制 linux设备树下LED灯控制 原理图: 所以在设备树下子节点下插入gpioled节点: gpioled { #address-cells = <1>; # ...

最新文章

  1. Windows文件被占用解决办法
  2. 微软自拍:让黑科技拯救不会拍照的你
  3. 蓝桥杯 入门训练 试题集汇总 【A+B问题、序列求和、圆的面积、Fibonacci数列】
  4. f1 score 代码_腾讯广告算法大赛冠军代码解读:稠密特征工程
  5. iOS c语言 基本运算符
  6. CSS之七个高度有效的媒体查询技巧
  7. python之定制多种彩虹色爱心
  8. 极速办公(word)字体如何设置为斜体
  9. Android 离线文字转语音功能-TTS(Text To Speech)
  10. 大地测量学基础(复习)第三部分
  11. oppoa5降级教程_OPPO A5官方出厂rom系统刷机包下载_卡刷升级包降级回退包
  12. 20170627——【肿瘤】肿瘤的异质性
  13. 【知识分享】异步串行收发器Uart(串口)-通信协议详解
  14. Unity中实现赛车游戏
  15. 游侠联机服务器没有响应,求助,游戏联机出现错误 - 《生存之旅2》 - 3DMGAME论坛 - Powered by Discuz!...
  16. Powerpivot PowerBI相关组件下载安装(附操作截图)
  17. mysql start with connect by_MYSQL实现Oracle的Start with…Connect By递归树查询
  18. 现在的AI专业(如机器学习)已经沦为调包专业了吗?
  19. HTML+CSS的简单使用(代码)
  20. 阿里云OSS文件批量打包下载

热门文章

  1. Linux 路由表详解及 route 命令详解
  2. iku交流平台管理系统的设计与实现
  3. 毕业设计-基于微信小程序的社区健康教育系统
  4. 支付宝生活号获取uid踩坑实践
  5. 实战Kaggle比赛:预测房价
  6. phpspider 完整使用技巧 含代码
  7. java定义byte数组_浅谈java的byte数组的不同写法
  8. linux设备驱动中断的步骤,Linux设备驱动之中断处理
  9. Android手机蓝牙互联,并传递数据。
  10. windows 启用对TLS1.2和1.3的支持,并禁用对TLS1.0的支持