tag 标签: 网口

相关帖子
相关博文
  • 热度 3
    2024-4-17 17:04
    1226 次阅读|
    0 个评论
    一、根据开发手册网口一节参照如下:自动永久配置静态 IP 地址通过 ifconfig 命令和 ip 命令配置的 IP 地址断电之后就会丢失,如果需要使 IP 地址永久生效,就需要修改网络管理工具相应的配置文件。 使用 systemd-networkd 管理工具配置动态获取 IP 地址 root@myir-remi-1g:~# cd / root@myir-remi-1g:/# ls bin dev etc lib lost+found mnt proc sbin tmp var boot eeprom.txt home lib64 media opt run sys usr root@myir-remi-1g:/# ifconfig can0: flags=193 mtu 72 metric 1 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 docker0: flags=4099 mtu 1500 metric 1 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 ether 02:42:30:1b:89:9b txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4163 mtu 1500 metric 1 inet 172.18.122.98 netmask 255.255.255.0 broadcast 172.18.122.255 inet6 fe80::8057:13ff:febf:e59b prefixlen 64 scopeid 0x20 ether 82:57:13:bf:e5:9b txqueuelen 1000 (Ethernet) RX packets 3123 bytes 512365 (500.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5949 bytes 1736720 (1.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 184 eth1: flags=4099 mtu 1500 metric 1 inet 192.168.40.234 netmask 255.255.255.0 broadcast 192.168.40.255 ether 9e:63:5b:42:7c:b3 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 187 lo: flags=73 mtu 65536 metric 1 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 84 bytes 6320 (6.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 84 bytes 6320 (6.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4099 mtu 1500 metric 1 ether c8:fe:0f:3d:94:d8 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 root@myir-remi-1g:/# root@myir-remi-1g:/# root@myir-remi-1g:/# root@myir-remi-1g:/# ls bin boot dev eeprom.txt etc home lib lib64 lost+found media mnt opt proc run sbin sys tmp usr var root@myir-remi-1g:/# cd /lib root@myir-remi-1g:/lib# ls firmware libanl.so.1 libgcc_s.so.1 libnss_compat.so.2 libresolv-2.31.so modules ld-2.31.so libc-2.31.so libm-2.31.so libnss_dns-2.31.so libresolv.so.2 security ld-linux-aarch64.so.1 libc.so.6 libm.so.6 libnss_dns.so.2 librt-2.31.so systemd ld-linux-armhf.so.3 libcap.so.2 libmyir_code.so libnss_files-2.31.so librt.so.1 udev libBrokenLocale-2.31.so libcap.so.2.32 libnsl-2.31.so libnss_files.so.2 libutil-2.31.so libBrokenLocale.so.1 libdl-2.31.so libnsl.so.1 libpthread-2.31.so libutil.so.1 libanl-2.31.so libdl.so.2 libnss_compat-2.31.so libpthread.so.0 modprobe.d root@myir-remi-1g:/lib# cd /systemd -sh: cd: /systemd: No such file or directory root@myir-remi-1g:/lib# cd systemd/ root@myir-remi-1g:/lib/systemd# ls journald.conf.d systemd-backlight systemd-network-generator systemd-sysctl libsystemd-shared-244.so systemd-boot-check-no-failures systemd-networkd systemd-sysv-install logind.conf.d systemd-cgroups-agent systemd-networkd-wait-online systemd-time-wait-sync network systemd-dissect systemd-pstore systemd-timedated ntp-units.d systemd-fsck systemd-quotacheck systemd-timesyncd resolv.conf systemd-growfs systemd-random-seed systemd-udevd system systemd-hibernate-resume systemd-remount-fs systemd-update-done system-generators systemd-hostnamed systemd-reply-password systemd-update-utmp system-preset systemd-initctl systemd-resolved systemd-user-runtime-dir system-shutdown systemd-journald systemd-rfkill systemd-user-sessions system-sleep systemd-localed systemd-shutdown systemd-vconsole-setup system.conf.d systemd-logind systemd-sleep systemd-volatile-root systemd systemd-makefs systemd-socket-proxyd systemd-ac-power systemd-modules-load systemd-sulogin-shell root@myir-remi-1g:/lib/systemd# cd network/ root@myir-remi-1g:/lib/systemd/network# ls 80-container-host0.network 80-container-vz.network 80-wifi-ap.network.example 80-wired.network 80-container-ve.network 80-wifi-adhoc.network 80-wifi-station.network.example 99-default.link root@myir-remi-1g:/lib/systemd/network# cat 80-wi 80-wifi-adhoc.network 80-wifi-station.network.example 80-wifi-ap.network.example 80-wired.network root@myir-remi-1g:/lib/systemd/network# cat 80-wired.network Name=en* eth* KernelCommandLine=!nfsroot KernelCommandLine=!ip DHCP=yes RouteMetric=10 ClientIdentifier=mac root@myir-remi-1g:/lib/systemd/network# root@myir-remi-1g:/lib/systemd/network# root@myir-remi-1g:/lib/systemd/network# root@myir-remi-1g:/lib/systemd/network# ls 80-container-host0.network 80-container-vz.network 80-wifi-ap.network.example 80-wired.network 80-container-ve.network 80-wifi-adhoc.network 80-wifi-station.network.example 99-default.link root@myir-remi-1g:/lib/systemd/network# ls 80-container-host0.network 80-container-vz.network 80-wifi-ap.network.example 80-wired.network 80-container-ve.network 80-wifi-adhoc.network 80-wifi-station.network.example 99-default.link root@myir-remi-1g:/lib/systemd/network# vi 10-wired.network root@myir-remi-1g:/lib/systemd/network# ls 80-container-host0.network 80-container-vz.network 80-wifi-ap.network.example 80-wired.network 80-container-ve.network 80-wifi-adhoc.network 80-wifi-station.network.example 99-default.link root@myir-remi-1g:/lib/systemd/network# root@myir-remi-1g:/lib/systemd/network# root@myir-remi-1g:/lib/systemd/network# vi /etc/systemd/network/10-eth0-static.network root@myir-remi-1g:/lib/systemd/network# ls 80-container-host0.network 80-container-vz.network 80-wifi-ap.network.example 80-wired.network 80-container-ve.network 80-wifi-adhoc.network 80-wifi-station.network.example 99-default.link root@myir-remi-1g:/lib/systemd/network# cat /etc/systemd/network/10-eth0-static.network Name=eth0 Address=172.18.122.98/24 Gateway=172.18.122.1 root@myir-remi-1g:/lib/systemd/network# ls 80-container-host0.network 80-container-vz.network 80-wifi-ap.network.example 80-wired.network 80-container-ve.network 80-wifi-adhoc.network 80-wifi-station.network.example 99-default.link root@myir-remi-1g:/lib/systemd/network# ls -a . 80-container-host0.network 80-container-vz.network 80-wifi-ap.network.example 80-wired.network .. 80-container-ve.network 80-wifi-adhoc.network 80-wifi-station.network.example 99-default.link root@myir-remi-1g:/lib/systemd/network# cd /etc/systemd/network/ root@myir-remi-1g:/etc/systemd/network# ls 10-eth0-static.network root@myir-remi-1g:/etc/systemd/network# systemctl restart systemd-networkd.service root@myir-remi-1g:/etc/systemd/network# ifconfig eth0 eth0: flags=4163 mtu 1500 metric 1 inet 172.18.122.98 netmask 255.255.255.0 broadcast 172.18.122.255 inet6 fe80::8057:13ff:febf:e59b prefixlen 64 scopeid 0x20 ether 82:57:13:bf:e5:9b txqueuelen 1000 (Ethernet) RX packets 4403 bytes 660158 (644.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6540 bytes 1836362 (1.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 184 结果IP在开发板重新启动后地址又变回默认的IP地址。后来查阅相关的资料才知道/usr/share/myir_test/age.sh里面文件需要屏蔽,于是用CP命令将整个文件夹重新命名。随后IP地址设置成功。 总的来说开发如果需要开发自动的东西需要做的事情很多,最好自己刷一个新的系统以便后面开发工作进行。
  • 热度 25
    2020-4-24 17:56
    8977 次阅读|
    3 个评论
    最近某个项目采用了寨都一个小厂做的IOT盒子,采用了RK3399作为主控制器,外部一堆常用接口,金属外壳。 整套设备有认证要求,就拿去实验室做了RE测试摸底,结果。。。最高处超标20db,超标频点包括:375MHz、500MHz、750MHz,很明显的千兆以太网125MHz的倍频点。 因为小厂没意愿也没能力配合,只能赶鸭子上架自己搞啦,整改措施如下: 1. 板上频率 RK3399的以太网MAC有个小问题,内部不能产生工作用的125MHz时钟,需要外部输入,而外部以太网PHY很多都带有125MHz时钟输出,就这样两者一拍即合,但如果125MHz时钟如果处理不好,那就是明晃晃的辐射源,就算是拔掉网线,照样有125MHz的倍频点辐射值很高。 但在测量板上的125MHz时钟后,发现波形是正弦波,用示波器的FFT功能没有发现倍频点值过高。拔掉网线后,辐射值下降到底噪水平,看起来不是板上125MHz时钟的问题。因为当时缺少整改条件,此问题暂时未验证。 2. 外壳接地 盒子外壳上全是涂漆,外壳之间、外壳和接口之间都没有连接。锉刀、泡棉走起,一番体力活之后,打磨的锃光瓦亮的外壳通过泡棉和RJ45紧紧的贴在一起。辐射值直接降低了10个db。 3. 网线屏蔽 网线本来就是屏蔽网线,在网线上增加磁环,因空间有限,不能缠绕,只能直穿,没有明显效果。 4. 电源屏蔽 在电源线接头位置,缠绕磁环,对低频辐射值有抑制作用,但对网口辐射频率没啥效果。 5. 板上信号 从上面验证的情况来看,超标点像是板上以太网信号信号通过网线辐射出来的,此时应该修改PHY和变压器之间的信号串联电路和并联电容。很不幸,小厂没有预留位置,也没有空间添加,放弃! 6. 通信速率 将千兆降速为百兆,方法将网线直接改为百兆网线(此时RK3399的125MHz时钟值没变),整个辐射超标点全部跌落,至少6个db余量。在没办法处理PCB板的情况下,只能先捏着鼻子认了。 小结: 1. 选供应商一定要选择靠谱的,最起码要选有各种证书的,不至于有问题时连技术支持都没有; 2. 接地!接地!接地!良好的接地能解决大部分问题; 3. 预留位置,哪怕不用也要预留位置; 4. 实在没办法了,那就耍流氓吧,降频!
  • 热度 16
    2014-2-3 13:23
    1409 次阅读|
    0 个评论
    4、验证初始化中的各个函数。 下面我们来看一下,上面所写的初始化函数是否可用。以上我们写好了三个函数,分别为 DM9000_init(),sendpacket()和receivepacket(),保存并命名为dm9000.c。既然我们要进行调试,当 然要有结果输出,根据自己的处理器的情况写一个串口程序,这些函数是学某个单片机的基础,这里不 做详细介绍,用到是时候会在函数里注释一下。 接下来我们来写个主函数,新建C文件,命名为mian.c,填写如下函数: void main(void) {     unsigned int i;     unsigned char c;     uart0_init();//初始化串口,调试时用到     DM9000_init();//初始化网卡     print_regs();/*通过串口,将DM9000中的寄存器打印出来,显示在超级终端上。此函数根据自己 的处理器进行修改,功能仅仅是读DM9000寄存器dm9000_reg_read(),再通过串口打印出来而已*/ } 函数写好,保存文件,连接硬件,连接网线到电脑上或局域网上,运行结果如下图所示:  图4 显示寄存器值 这里首先检查,各个控制寄存器是否是自己写进去的值,在检查状态寄存器是否正确,其中主要要 看NSR寄存器的bit 是否为“1”,该位表示是否连接成功。本例中NSR的值为40H,括号里的数为对应 的十进制数。 下面我们将主函数改进一下,增加个中断接收函数,查看是否能接收到数据。 void main(void) {        ^^^^^^^      } } 保存运行调试。  图7 主机MAC地址 至此,关于DM9000的调试过程就完成了。之后我还调试了UDP通讯、TCP通讯等,主要是关于协议的 处理了,这里就不介绍了。有兴趣的朋友可以参看《TCP/IP协议》第一卷,将会有很大帮助。希望这些 调试过程能为读者或多或少的提供些有用的信息,也欢迎大家和我一起讨论。 全文不完整,字数超出范围,全文见下边链接: http://www.cnblogs.com/xilentz/archive/2010/07/12/1775611.html
  • 热度 13
    2014-2-3 12:34
    2709 次阅读|
    0 个评论
    和其它网卡芯片不同,DM9000系列网卡芯片在嵌入式开发板上很常见,尤其是有关ARM-Linux的开发板上的网络连接部分几乎都是采用该芯片完成的。当然,其它网卡芯片,如RTL8019的应用也很常见,在很多开发板上得到应用然而RTL8019的介绍在网上可以找到非常详细的介绍,尤其是用单片机对其做底层驱动的介绍非常丰富。下面的网站就介绍了用AVR驱动RTL8019网卡芯片的非常详细的过程,有兴趣的朋友可以参考一下。 http://members.home.nl/bzijlstra/software/examples/RTL8019as.htm  AVR驱动RTL8019网卡芯片的详细介绍。 言归正传。在网上也能找到许多关于DM9000网卡芯片的介绍,然而这些介绍大多是关于Linux或WinCE下的驱动程序或移植,很少有介绍单片机驱动DM9000的例子。因此我在这里把我调试DM9000E的过程详细说明一下,仅供参考。 本文主要介绍单片机驱动DM9000E网卡芯片的详细过程。从网卡电路的连接,到网卡初始化相关程序调试,再到ARP协议的实现,一步一步详细介绍调试过程。如果有时间也会把UDP和TCP通讯实验过程写出来。当然,会用单片机编写DM9000的驱动,再想编写ARM下的Linux的驱动就容易的多了。在调试之前,应该先参考两份技术文档,可以从下面网站中下载。 DM9000E.pdf(芯片数据资料)和 DM9000 Application Notes Ver 1_22 061104.pdf(应用手册) http://www.davicom.com.tw 或者 DM9000 Datasheet VF03:  http://www.davicom.com.tw/userfile/24247/DM9000-DS-F03-041906_1.pdf DM9000A Datasheet:  http://www.davicom.com.tw/userfile/24247/DM9000A-DS-F01-101906.pdf DM9000 Application Notes V1.22  http://www.davicom.com.tw/big5/download/Data%20Sheet/DM9000_Application_Notes_Ver_1_22%20061104.pdf 一、电路连接      DM9000E网卡芯片支持8位、16位、32位模式的处理器,通过芯片引脚EEDO(65脚)和WAKEUP(79脚)的复位值设置支持的处理器类型,如16位处理器只需将这两个引脚接低电平即可,其中WAKEUP内部有60K下拉电阻,因此可悬空该引脚,或作为网卡芯片唤醒输出用。其它型号请参考相应的数据手册。 图1 DM9000引脚 如图所示,对处理器驱动网卡芯片来说,我们比较关心的有以下几个引脚:IOR、IOW、AEN、CMD(SA2)、INT、RST,以及数据引脚SD0-SD15-SD31和地址引脚SA4-SA9。其中,地址引脚配合AEN引脚来选通该网卡芯片,对于大多数的应用来说没有意义,因为在我们的应用中一般只用一个网卡芯片,而这些地址引脚主要用于在多网卡芯片环境下选择其中之一。DM9000工作的默认基地址为0x300,这里我们按照默认地址选择,将SA9、SA8接高电平,SA7-DA4接低电平。多网卡环境可以根据TXD0-TXD3配置SA4-SA7来选择不同的网卡,这里不做介绍,有兴趣的朋友请参考应用手册和数据手册。数据引脚SD0-SD31则根据前面所讲的配置处理器模式与处理器的数据总线进行选择连接即可,没用到的引脚悬空。那么,除了地址、数据引脚外,剩下的与处理器有关引脚对我们来说及其重要了,而与处理器无关的引脚,只需按照应用手册连接即可。     IOR和IOW是DM9000的读写选择引脚,低电平有效,即低电平时进行读(IOR)写(IOW)操作;AEN是芯片选通引脚,低电平有效,该引脚为低时才能进行读写操作;CMD的命令/数据切换引脚,低电平时读写命令操作,高电平时读写数据操作。  图2 读时序 图3 写时序 这些引脚接口和其它单片机外围器件的引脚接口基本相同,其使用也一样。对于有总线接口的单片机来说,如51系列,ARM等直接连接即可。对于没有总线接口的来说,如AVR mega32等可以直接用I/O引脚模拟总线时序进行连接。连接时要参考读写时序,如上图所示。具体连接电路,有时间我再画出来,暂时先略了。 二、编写驱动程序 在这,我使用C语言编写驱动程序,这需要非常注意一点,即处理器所用的C编译器使用“大端格式”还是“小端格式”,这可以在相应处理器的C编译器说明上找到。一般比较常见的是小端格式。而对于8位处理器来说,在编写驱动程序时,可以不考虑,但是在编写网络协议的时候,一定好考虑,因为网络协议的格式是大端格式,而大部分编译器或者我们习惯的是小端格式,这一点需要注意。 在DM9000中,只有两个可以直接被处理器访问的寄存器,这里命名为CMD端口和DATA端口。事实上,DM9000中有许多控制和状态寄存器(这些寄存器在上一篇文章中有详细的使用说明),但它们都不能直接被处理器访问,访问这些控制、状态寄存器的方法是: (1)、将寄存器的地址写到CMD端口; (2)、从DATA端口读写寄存器中的数据;     1、读、写寄存器 其实,INDEX端口和DATA端口的就是由芯片上的CMD引脚来区分的。低电平为INDEX端口,高电平为DATA端口。所以,要想实现读写寄存器,就必须先控制好CMD引脚。 若使用总线接口连接DM9000的话,假设总线连接后芯片的基地址为0x800300(24根地址总线),只需如下方法: #define DM_ADD (*((volatile unsigned int *) 0x8000300)) #define DM_CMD (*((volatile unsigned int *) 0x8000304)) //向DM9000寄存器写数据 void dm9000_reg_write(unsigned char reg, unsigned char data) {     udelay(20);//之前定义的微妙级延时函数,这里延时20us     DM_ADD = reg;//将寄存器地址写到INDEX端口     udelay(20);     DM_CMD = data;//将数据写到DATA端口,即写进寄存器 } //从DM9000寄存器读数据 unsigned int dm9000_reg_read(unsigned char reg) {     udelay(20);     DM_ADD = reg;     udelay(20);     return DM_CMD;//将数据从寄存器中读出 } 只得注意的是前面的两个宏定义DM_ADD和DM_CMD,定义的内容表示指向无符号整形变量的指针,在这里0x800300是DM9000命令端口的地址,对它的赋值操作就相当于把数据写到该地址中,即把数据写到DM9000的命令端口中。读的道理也一样。这是一种很常见的宏定义,一般在处理器中定义通用寄存器也是这样定义的。 若没有总线接口的话,可以使用IO口模拟总线时序的方法实现寄存器的读写。这里只说明实现步骤。首先将处理器的I/O端口与DM9000的IOR等引脚直接相连(电平匹配的情况下),又假设已经有宏定义“IOR”I/O端口控制DM9000的IOR引脚,其它端口控制DM9000引脚的命名相同,“PIO1”(根据处理器情况,可以是8位、16位或32位的I/O端口组成)控制数据端口。这样宏命名更直观些。写寄存器的函数如下:     以上不全,详细参考下边的链接 转自: http://www.cnblogs.com/xilentz/archive/2010/07/12/1775604.html
  • 热度 15
    2012-10-24 21:21
    1010 次阅读|
    0 个评论
    串口转网口
相关资源
  • 所需E币: 0
    时间: 2024-2-27 15:17
    大小: 2.5KB
    一、为什么选择C#C#是一种新式、创新、开放源代码、跨平台,面向对象的编程语言,是GitHub上排在前列的5种编程语言之一。是否拥有JavaScript、Java或C++开发经验?你会立即发现C#用起来十分熟悉,并会乐于看到推出不断变化的功能,包括类型安全、泛型、模式匹配、异步、记录等。我们希望你从按下第一个按键起,便爱上C#。二、版本VisualStudio适用于Windows和Mac。VisualStudioforMac的许多功能与VisualStudioforWindows相同,并针对开发跨平台应用和移动应用进行了优化。本文重点介绍VisualStudio的Windows版本。VisualStudio有三个版本:社区版、专业版和企业版。请参阅比较VisualStudio版本,了解各个版本支持的功能。三、C#可以开发哪些类型的应用程序c#可以用于开发各种类型的应用程序,包括但不限于以下几种:桌面应用程序:使用C#和.NETFramework,你可以开发Windows桌面应用程序。这些应用程序可以提供丰富的用户界面和交互功能,适用于各种领域,如办公软件、图像处理工具、游戏等。Web应用程序:C#可以与ASP.NET和ASP.NETCore等Web开发框架结合使用,用于构建Web应用程序。你可以创建动态网站、电子商务平台、后台管理系统等,并通过浏览器访问。移动应用程序:通过使用Xamarin或Unity等跨平台开发工具,你可以使用C#开发移动应用程序,包括iOS、Android和WindowsPhone。这使得开发人员可以在多个平台上共享代码,加快开发速度。云和分布式应用程序:使用C#和相关技术,例如ASP.NETCore、Azure等,你可以构建云应用程序和分布式系统。这包括构建基于云平台的Web应用程序、微服务架构、消息队列和分布式数据库等。游戏开发:C#在游戏开发中非常受欢迎,特别是在使用Unity游戏引擎的情况下。你可以使用C#编写游戏逻辑、控制脚本和用户界面,开发各种类型的游戏,包括2D和3D游戏。数据库应用程序:C#与各种数据库系统(如SQLServer、MySQL)紧密集成,可以用于开发数据库应用程序。通过ADO.NET和EntityFramework等技术,你可以连接到数据库、执行查询、处理数据和构建数据驱动的应用程序。四、程序结构C#中的关键组织结构概念包括程序、命名空间、类型、成员和程序集。程序声明类型,而类型则包含成员,并被整理到命名空间中。类型示例包括类、结构和接口。成员示例包括字段、方法、属性和事件。编译完的C#程序实际上会打包到程序集中。程序集的文件扩展名通常为.exe或.dll,具体视其分别实现的是应用程序还是库_***而定。五、代码实战将以下代码粘贴到Main()方法主体中。//someWordsisastringarray.string[]someWords={  "the",  "quick",  "brown",  "fox",  "jumps"};string[]moreWords={  "over",  "the",  "lazy",  "dog"};//Alphabeticallysortthewords.IEnumerable<string>query=fromwordinsomeWords              orderbyword              selectword;若要使用IntelliSense文字自动完成插入单词query的剩余部分,请按Tab。完成后,代码块如以下代码所示。你可以通过输入cw,然后按Tab两次来生成Console.WriteLine语句,从而进一步练习代码片段。foreach(stringstrinquery){  Console.WriteLine(str);}六、总结: 抛开商业的角度,无论是简洁性,还是上手的容易程度来说,c#都是不错的一个愿意。大家没有必要带有成见去看待c#这样的语言,只要快速开发出软件,保质保量满足客户的需求,这就是好语言,没必要从底层到上层、事事亲力亲为,做好自己擅长的领域,掌握核心模块的开发竞争力其实就可以了。
  • 所需E币: 4
    时间: 2022-1-2 12:01
    大小: 1.51MB
    上传者: czd886
    基于网口通信技术开发傅立叶变换红外光谱仪
  • 所需E币: 0
    时间: 2021-6-22 08:50
    大小: 14.37MB
    上传者: Axxx
    基于野火开发板的网口例程
  • 所需E币: 1
    时间: 2021-4-8 10:09
    大小: 1.95MB
    上传者: czd886
    基于TMS320C6678网口的程序自更新应用技术
  • 所需E币: 0
    时间: 2021-3-18 16:47
    大小: 412.44KB
    上传者: Argent
    FPGA是一个技术密集型的行业,没有坚实的技术功底,很难形成有竞争力的产品。从技术上来看FPGA未来的发展,至少在几年内还是遵循摩尔定律的规则,工艺不断升级,目前xilinx16nm工艺的FPGA已经成熟商用,xilinx下一代产品会升级到7nm,重点应该还是瞄准通信和可能出现的新兴行业如大数据处理等。有这方面需求的网友不妨来共同学习探讨。
  • 所需E币: 1
    时间: 2021-3-12 15:33
    大小: 818.5KB
    上传者: ZHUANG
    基于DM9000网口芯片的DSP6713B网口扩展
  • 所需E币: 0
    时间: 2020-12-27 23:38
    大小: 203.13KB
    上传者: stanleylo2001
    网口EMC标准与技术资料
  • 所需E币: 0
    时间: 2020-9-16 20:08
    大小: 204.71KB
    上传者: kaidi2003
    网口EMC标准.PDF
  • 所需E币: 0
    时间: 2020-6-12 12:09
    大小: 730.58KB
    上传者: 帘卷笙声寂
     SKW78是一款1000Mbps的高速无线路由器模块,该模块符合802.11a/b/g/n/acWi-Fi标准,集成3个千兆速度的WAN口或LAN口;2xMIMO2.4GHz802.11b/g/nWIFI和2xMIMO5GHz802.11a/g/n/acWIFI.用在客户的电子设备上时,只需要提供一个3.3V的供电电源即可。        SKW78内置3个主芯片,一个是集成了1个dual-coreMIPS880MHz,3-portGbEswitch,USB2.0,SD-XC的MT7621A;另一个是集成了2.4Gwlan802.11n,MAC/radio和internalPAandLNA的MT7603E;第三个是集成了5Gwlan802.11ac,MAC/radio和internalPAandLNA的MT7612E。        SKW78在2.4G频段下,20MHz的频宽能达到144Mbps的速率;40MHZ的频宽能达到300Mbps的速率;在5G频段下,80MHz的频宽能达到867Mbps的速率.        SKW78支持AP/Client/Router模式!
  • 所需E币: 5
    时间: 2019-12-25 21:01
    大小: 592.7KB
    上传者: 二不过三
    正常调试程序我们是应该用仿真器的,它调试稳定而且速度很快,不过它的不菲的价格也令很多希望学习ARM的朋友望而却步,因此价格便宜的简易JTAG就成了一种流行的折衷方案。但是正是由于它的“简易”给大家使用中制造许多麻烦,下面我把大家经常出现的问题以及解决的方法列出来:第一个问题是烧写的问题;第二个问题是调试的问题.这篇文章我会详细的教会大家怎样在没有预烧了程序的板子,一步步通过网口烧入程序……