上位机与下位机通讯常用的框架或协议(下位机C语言)

用STM32开发下位机,使用TCP与上位机通讯,然后需要解析命令、执行命令、组装命令以及其他有关操作。想问下有没有成熟的此类下位机通讯框架,只需要根据自身需要进行简单的修改,即可完成下位机通讯模块的开发。

2个回答

可以参考一些成熟的协议,比如modbus。

可以用W5500 有硬件协议栈,stm32只需用ISP控制

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
下位机的c语言为什么产生的浮点数通过串口传到上位机解析出来不正确呢?
下位机的c语言为什么产生的浮点数通过串口传到上位机解析出来不正确呢?下位机一般c语言的随机数是什么形式的?
请问上位机上如何对下位机c语言写的浮点数进行解包还原得到原始的发送数据?
请问上位机上如何对下位机c语言写的浮点数进行解包还原得到原始的发送数据?像单片机生成的浮点数的解析的步骤是怎样的?
STM32多机通讯,安卓板为上位机,下位机为几个STM32串口接收数据(应该是2~10个)
1:STM32多机通讯,安卓板为上位机,下位机为几个STM32串口接收数据(应该是2~10个),请大神指教, 2:要有程序代码提供(最好是有寄存器配置版本的。如是库函数版的请说清楚)
SerialPort串口通讯收到多余的数据
我有一C#编写的上位机软件与下位机通讯,下位机是C语言的程序,上位机的串口接收类是SerialPort,偶尔会有问题是会收到一些下位机程序中没有的数据,如00E4C8EBB5C4D0D4B1F03D300D0ACAE4C8EBB5C4D1AABAECB5B0B0D,请问这是什么原因?硬件中如串口或数据线或单片机会导致这样吗?还是说serialport这个类本身就不完善。
有哪些适合在嵌入式系统上运行的脚本语言?
1. 我想在嵌入式系统上使用一些解释型语言(脚本),来作为上位机和下位机的通讯控制 2. 内存占用小,最好在32K或者64K 3. 因为是做控制的,所以脚本语言只需要支持最简单的基础功能就行
C#上位机编写时遇到下位机数据传输问题。
![图片说明](https://img-ask.csdn.net/upload/201905/12/1557673198_357562.png) 然后C#提示是这里有问题: if (Convert.ToUInt16(serialPort1.ReadLine()) != 1820) 原程序为: private void button1_Click(object sender, EventArgs e) { try { if (isopen == false) { serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text); serialPort1.PortName = comboBox1.Text; serialPort1.Open(); serialPort1.Write("s"); if (Convert.ToUInt16(serialPort1.ReadLine()) != 1820) { MessageBox.Show("没找到设备"); return; } button1.Text = "停止采集"; 单片机下位机调试过已经是可以检测的了,就是上位机的问题,调试了之后问题是:WindowsApplication1.Form1.button1_Click(object sender = {未知}, System.EventArgs e = {未知}) C#这个object sender收不到东西,代码到底哪部分有问题啊??
C#与C语言开发的两端串口通信问题?
下位机是用C语言开发的,上位机是用C#开发的,两部分进行串口通信时,发现下位机的某一条指令发过来,上位机要过3s多才能收到,请问这是因为两种语言之间差异造成的吗
在这个代码基础 通过加入串口来控制步进机转动 求怎么实现 自己写的串口通信 接收不到上位机发的指令信号
#include <reg52.h> unsigned char timer1; sbit DIR = P1^2;//位定义DIR为P1.0口,控制步进电机转向 sbit ENA=P1^1;//位定义ENA为P1.1,控制步进电机的使能 sbit PWM=P1^0;//控制输出脉冲 sbit SS_Step = P3^1; void Key_scan(); void system_Ini() //调用子函数初始化定时器T1 { TMOD|=0X11; TH1= 0Xfe; TL1 = 0x33; TR1 = 1;//启动T1定时器 IE = 0X8A;//开T0,T1中断,开总中断 } main() { system_Ini(); //调用子函数初始化定时器 T1 while(1) { Key_scan(); } } void T1zd(void) interrupt 3 //开定时器1中断 { TH1 = 0xfe; TL1 = 0x33; timer1++;//计数+1 } void Key_scan() { if(SS_Step==0) { //按一定步进角度步进,每按下一次转动一定步进角后停止 //delay(); if(SS_Step==0) { while(!SS_Step) { if (timer1>10) //决定这一个脉冲的周期时间,此处为0.15ms*10=5ms { timer1=0; } if (timer1<3) { PWM=0; } else { PWM = 1; } } } } }
pc机与android手机socket通讯的问题
**本人最近想做一个上微机在pc机上控制下位机(单片机)!同时这个上位机具有socket通信的功能能通过安卓手机远程控制上位机向单片机发送指令,现在pc机上的上位机做好了,然后使用winsocket服务端程序做好了!手机端安卓socket客户端!现在问题就是这两个socket之间好像不能通信啊!在电脑上使用java写的服务端可以和安卓手机通信!** **我想问一下在电脑上用C语言和win api写的服务端有么有办法和安卓客户端的socket通信!有的话,能否指教一下如何写的,用的什么函数?谢谢**
MFC界面同步显示视频采集卡采集到的的视频
问题:我需要在MFC界面上同步显示视频采集卡采集到的视频,并且保存在本地。 采集卡安装好驱动后在设备管理器“声音、视频和游戏控制器”这一栏里可以看到驱动正常,说明这个采集卡应该是标准的。 但是采集卡厂家给我说没有供二次开发用的SDK,所以上位机不知道怎么去控制这个采集卡进行视频显示。 采集卡主芯片是intersil TW6869 TA1-CRH,我查了下芯片厂商说这个卡是提供软件开发工具包(SDK)的,哪位大佬用过这款芯片或者做过上位机的视频显示,求大佬帮助。 邮箱:xvlei_far163.com
QT 中Modbus主机和下位机不能通信,不能下发数据,不能读取数据,拜托各位大神帮忙解决一下。
1.使用USB转串口测试了一下上位机中Modbus协议那部分程序,上位机机与下位机不能通信,不能下发数据,也不能读取数据。主机执行connectDevice()函数后, APF_ModbusData->ModbusMaster->state() == QModbusDevice::ConnectedState成立,执行sendReadRequest()后,返回的指针对象调用error()函数后也没有错误。按理说state()返回值等于 QModbusDevice::ConnectedState表示Modbus网络应该已经连接上了,而且error()返回值也没错,但是为什么不能下发数据和读取数据呢?程序能正常执行,但是读取数据时,发送请求和读取数都不成功。 下面是我的代码,看Modbus线程中遥测部分的程序即可 2.Modbus处理数据的线程程序 #include "ModbusDataThread.h" #include "GUIDataThread.h" #include <QVector> #include <QMutex> ``` 无 ``` int DataMode = 2; //数据处理模式选择  1.遥调;2.遥测;3.遥信; extern QMutex Mutex; void ModbusDataThread::run() { APF_ModbusData = new ModbusData; while(true) { if( APF_ModbusData->ModbusMaster->state() != QModbusDevice::ConnectedState) { int state1 = APF_ModbusData->ModbusMaster->state(); qDebug() << "state1" << state1; APF_ModbusData->Modbus_Connection(); msleep(2000); } if( APF_ModbusData->ModbusMaster->state() == QModbusDevice::ConnectedState ) { int state3 = APF_ModbusData->ModbusMaster->state(); qDebug() << "state3" << state3; qDebug() << "通信成功"; while(true) { if( DataMode == 1 ) //Modbus处理遥调数据 { Mutex.lock(); APF_ModbusData->RemoAdjust_DataTrans_Modbus(); APF_ModbusData->Modbus_ReadWriteDatas_RemoAdjust(1); RemoAdjust_GUI = RemoAdjust_Modbus; //qDebug() << RemoAdjust_GUI; DataMode = 2; Mutex.unlock(); msleep(2000); } if( DataMode == 2 ) //Modbus处理遥测数据 { Mutex.lock(); qDebug() << "遥测"; APF_ModbusData->Modbus_ReadDatas_RemoMea(1); RemoMea_GUI = RemoMea_Modbus; DataMode = 3; Mutex.unlock(); msleep(2000); } if( DataMode == 3 ) //Modbus处理遥信数据 { Mutex.lock(); qDebug() << "Modbus"; qDebug() << "遥信"; APF_ModbusData->Modbus_ReadDatas_RemoSignal(1); RemoSignal_GUI = RemoSignal_Modbus; DataMode = 2; Mutex.unlock(); msleep(2000); } } } } delete APF_ModbusData->ModbusMaster; } 3.设置串口参数和连接程序APF_ModbusData->Modbus_Connection(); ``` ``` void ModbusData::Modbus_Connection() { if (!ModbusMaster) return; QString portname = "/dev/ttyUSB0"; ModbusMaster->setConnectionParameter(QModbusDevice::SerialPortNameParameter,portname); ModbusMaster->setConnectionParameter(QModbusDevice::SerialParityParameter,QSerialPort::NoParity); ModbusMaster->setConnectionParameter(QModbusDevice::SerialBaudRateParameter,QSerialPort::Baud9600); ModbusMaster->setConnectionParameter(QModbusDevice::SerialDataBitsParameter,QSerialPort::Data8); ModbusMaster->setConnectionParameter(QModbusDevice::SerialStopBitsParameter,QSerialPort::OneStop); ModbusMaster->setTimeout(1000); ModbusMaster->setNumberOfRetries(3); ModbusMaster->connectDevice(); } 4.APF_ModbusData->Modbus_ReadDatas_RemoMea() ,此为遥测发送请求和读取数据的函数 ``` ``` void ModbusData::Modbus_ReadDatas_RemoMea(int serverAddress) { if (!ModbusMaster) return; QModbusDataUnit readRequest_RemoMea(QModbusDataUnit::InputRegisters,1,100); if ( auto *Reply = ModbusMaster->sendReadRequest( readRequest_RemoMea, serverAddress)) { quint16 error_RemoMea = Reply->error(); qDebug() << "error_RemoMea" << error_RemoMea; if ( !Reply->isFinished() ) { bool a = connect(Reply, &QModbusReply::finished, this, &ModbusData:: ReadReady_RemoMea); qDebug() << a; } else { delete Reply; } } else { qDebug() << "request error"; } } 5.插槽函数ReadReady_RemoMea()为函数Modbus_ReadDatas_RemoMea()中 connect(Reply, &QModbusReply::finished, this, &ModbusData:: ReadReady_RemoMea);关联的插槽函数。 ``` ``` void ModbusData::ReadReady_RemoMea() { QModbusReply *reply = qobject_cast<QModbusReply *>(sender()); if (!reply) return; if (reply->error() == QModbusDevice::NoError) { RemoMea_Modbus = reply->result().values(); //返回读取的遥测数据 } else { qDebug() << "reply error"; } reply->deleteLater(); //delete the reply }
MFC如何将数据显示在编辑框中?
是这样的,我的毕设是用CAN总线知识做的,上位机软件是MFC写的,下位机返回数据帧后,我需要对特定的帧ID的数据帧中前两字节的数据(16进制表示,比如 20 ff)先转换成十进制,然后计算得到一个电压值,放进编辑框中,实时显示,根据传回来数据帧前两字节的变化不断变化,这要如何实现?另外我给编辑框关联变量时,变量类型该选什么,CString还是浮点型?(电压值会出现小数),求大佬详细解答。。我对MFC没啥了解,C也忘记很多了,希望能对上述问题详细点的解答,谢谢
学习usb通信,使用qt creator开发cypress usb上位机问题,请大神们指点一二。
问题:相比串口通信交互来讲,每次串口有数据就会发出readready信号,通过 connect信号槽机制,可以实现上下位机的交互。但是usb不是qt自带的模块。 没有类似信号发出。该怎么模拟这种机制呢可以使usb上下位机正常交互呢? ps:有个点子:新建一个线程,把接受函数放到死循环里实现?这样可行? 该怎么写呢?该使用继承qthread还是new thread然后movetothead方法开线程呢? 我试着用后者建立,写到connect地方是不知道怎么写了。 qthread *thread = new qthread(); usbdevice = new ccyusbdevice(null); usbdevice->movetothread(thread); connet(?,?,?,?); //这个地方不知道怎么写了。 是不是应该换成继承thread的方式? thread->start();
STM32 串口接收指令无反应。
C#上位机通过串口给STM32发送指令,结果发现发送指令下位机偶尔有反应,大多数情况下没反应,只有多次点击有时会返回一次数据。代码如下 ``` 上位机发送部分 char[] a = new char[1];//设置标志位 a[0] = 'a'; serialPort1.Write(a, 0, 1); ``` STM32处理部分: ``` while(1) { if(USART_GetITStatus(USART1,USART_IT_RXNE)!=Bit_RESET) { UART_data=USART_ReceiveData(USART1);//接收串口数据 if(UART_data=='a')//进行判断 { USART_SendData(USART1,a);//a为之前定义的一个变量 b也是 } if(UART_data=='b') { USART_SendData(USART1,b); } while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET); } } ```
求助!LAN8720+LWIP+UCOSII,发送TCP包时,容易出现包错乱
![图片说明](https://img-ask.csdn.net/upload/201812/25/1545701910_962327.jpg) 因为之前没有接触过LWIP,在移植LWIP的时候发现许多问题,比如出现因为上位机没再发命令,导致下位机的数据一直积累(后来用TCPNODELAY)解决了,但出现奇怪的现象时当下位机无间隔的发三个包时,因为上位机在收到第二个包后立即返回应答,导致第三个包出现如图的怪异情况,就是Data区域的部分数据跑到TCP包头部分了。虽然可以恢复,但是恢复时间过长,对于实时性交互,不太合适。 在此求助各位大神,可以指点一二,我这边实在没有方向了~~
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
毕业设计 微信小程序 音乐播放器
大学室友根据网易云的API自己制作的微信小程序,获得校级优秀毕业设计(如果你是大佬请绕行),下面简单介绍一下: 根据多次的使用不同的音乐APP发现,网易云音乐的页面设计最适合作为本微信小程序的页面基础模板。由于本作品是微信小程序,就需要剔除APP中的各种冗余的功能,页面设计也需要尽可能的简单直接,内容也要充实。然后根据以上几点,对应用的功能模块进行大量的分析与重构...
想查看微信好友撤回的消息?Python帮你搞定
要说微信最让人恶心的发明,消息撤回绝对能上榜。 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于是你打算问问她发了什么,结果她回一句"没什么"。这一回复,让你的好奇心更加强烈了,顿时就感觉消息撤回这一功能就是用来折磨人的。 那么有没有什么办法能够知道你心爱的她(他)到底撤回了什么呢?不要着急,P...
程序员必备的8个学习工具
取其精华,去其糟粕
2019年12月中国编程语言排行榜
2019年12月4日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.60% 2 c/c++ 16.58% 3 c# 12.59% 4 javascript 12.21% 5 python 7.96% 6 go 7.19% 7 php ...
拼不过 GO?阿里如何重塑云上的 Java
阿里妹导读:Java 诞生于20年前,拥有大量优秀的企业级框架,践行 OOP 理念,更多体现的是严谨以及在长时间运行条件下的稳定性和高性能。反观如今,在要求快速迭代交付的云场景下,语言的简单性似乎成了首要的要求,而传统的 Java 语言显得有一些过于重量了。今天,阿里 JVM 团队技术专家郁磊(花名:梁希)分享 JVM 团队是如何面对和处理集团巨大的业务规模和复杂的业务场景的。 音乐无国...
Java知识体系最强总结(2020版)
更新于2020-01-05 18:08:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 整理的Ja
一个“/”键,封锁了整个互联网
正所谓无BUG不生活,从你含辛茹苦地码着第一行代码开始,bug就如影随形。 其实,bug 被自己或者是测试人员发现都是好事;但如果是被用户发现,又或者导致了客户和公司的巨额损失……这些未知后果,就如同悬在头顶的一把利刃,让人脊背发凉…… 但一个小小的bug,可能带给你惊吓,也可能带来惊喜。接下来,我们就来看看 bug 都能带来哪些意想不到的影响呢? 1.来自 Amazon 的圣诞大礼包~ 201...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实
自学系列 | 就谈兴趣!
最近接到很多读者的私信,基本都是有关方向的选择上以及如何自学上,还有部分读者问到有关前端的方向,能不能详细写写如果从零学习,能够达到找工作的标准。而且这个自学能力是我们一辈子的生存技能,无论干什么,都离开这种能力,这是毋容置疑的。 之前有关自学的文章确实挺零散的,而且还不够详细。所以小鹿打算利用业余时间把如何自学写成一整个系列《如何成为一个优秀的自学者》。写之前呢,希望我们每个人先放下心中的执念...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前言 很多次小伙伴问到学习方法,我也很想写这样的一篇文章来跟大家讨论下关于学习方法这件事情。 其实学习方法这个事情,我没啥发言权
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了......,这可都是提升你幸福感的高效率生产力工具哦! 走起!...... NO、1 ScreenToGif 屏幕,摄像头和
还看不懂同事代码?快来补一波 Java 7 语法特性
前言 Java 平台自出现到目前为止,已经 20 多个年头了,这 20 多年间 Java 也一直作为最流行的程序设计语言之一,不断面临着其他新兴编程语言的挑战与冲击。Java 语言是一种静态强类型语言,这样的语言特性可以让 Java 编译器在编译阶段发现错误,这对于构建出一个稳定安全且健壮的应用来说,尤为重要。但是也因为这种特性,让 Java 开发似乎变得缺少灵活性,开发某些功能的应用时,代码量可...
为什么TCP建立连接协议是三次握手,而关闭连接却是四次挥手呢?
看到了一道面试题:“为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?”,想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章,希望对你们有所帮助。 TCP 连接 我们先来补一下基础什么是 TCP 协议?传输控制协议( Transmission Control Protocol, TCP )是种面向连接、确保数据在端到端间可靠传输的协议。面向连...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦......,嗯,我们导员是所有导员中最帅的一个,真的...... 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强......,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧?
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
一文带你看清 HTTP 所有概念
上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍 通用
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧???? 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升自...
B站 MySQL学习随手记 全是满满的干货!
业务级别的MySQL学习与使用 1、数据库分类 1. 关系型数据库(SQL) MySQL,Oracle,SQL Server,DB2,SQLlite 通过表和表之间的,行与列之间的关系进行数据的存储。(例如:学生信息表) 2. 非关系型数据库(NoSQL)Not Only SQL Redis,MongDB 对象存储,通过对象的自身的属性来决定 2、MySQL安装与配置 下载压缩文件...
相关热词 c#判断数字不得为负数 c#帧和帧协议 c#算偏移值 c# 在枚举中 c#6 字符串 插值 c#程序中的占位符标签 c#监听数组变化 c# vlc c#索引实现 c# 局域网广播通信
立即提问