北斗杯——C#上位机学习心得

#来自学渣的问候~

前情提要
因为准备2020的北斗杯大赛,要写一个基于我们硬件实物的上位机软件,思来想去之后觉得用C# 来写。其实在春节之前,我只会C语言和Verilog HDL,C#属于那种听过但从来没学过的语言。
但是这个软件,基础知识我学了10天,上位机我写了10天,大概20天不到就搞定了。(也算神速了吧)因此也想分享一下,如何快速入门C#,并制作一个上位机软件

这篇博客比较是个电子类学生,急需给自己的硬件实物配置一个电脑端调试助手,不打算学习太多的基础知识的那种,像我一样为了比赛而准备的。

学习视频

在C#入门的学习,肯定是需要看学习视频的,上B站搜索C# 上位机,就会出现很多针对上位机的入门教程。
在这里插入图片描述
我比较推荐 杜洋工作室 的上位机入门,这个教程的主持人刚好是一个写软件一个做硬件的,做硬件的主持人就比较能了解到像电子类的学生学习C#,是一个怎么样的思维。

代码量积累

在正式些比赛的上位机软件之前,我大概是写了近10个C#的窗体应用程序,来作为练习。内容覆盖了 串口,信息显示,按键控制,串口信息转图像,多窗体应用,这几个算是最基础的一些应用,必须要会的。

C#本身作为一门高级语言(指高度模块化封装),拥有很完善的库,在不需要进行大项目开发的情况下,基本不需要自己造函数,直接调用就可以了。C#整体的学习难度不大(指写上位机),只要拥有了良好的C语言基础,和了解C#中各种类的使用,就能写出一个不错的上位机了。

上位机编程

我为北斗杯写的上位机,是一个数据显示的窗体应用程序,包含了串口,数据显示,串口收发,文件打开/保存,图像显示,GMap地图显示,网络数据库连接。
在这里插入图片描述
其中,地图用的是GMap.NET的拓展包,需要去其官网上下载应用程序拓展包。
应用效果是这样的:
在这里插入图片描述
数据库在C#的应用有好几种,SQL Server ,MySQL,ACCESS。我是因为借用了同学的阿里云数据库,必须要匹配,所以我用的就是MySQL。

这个我没有用数据库的显示界面,我将数据库的信息格式转换成了TextBox的显示,也就是字符串显示。网端是这个样子的:
在这里插入图片描述

学习心得

上位机介绍的博客改天单独写一个,这个博客主要就是想写一下学习C# 和上位机编程的心得。
我写上位机的过程比较简单粗暴,入门了基础知识之后就直接硬刚,不会的就直接上网查资料,找相应的函数来用。
在编写过程中,我是对照了一个学长的模板,来设计整个软件的。有一个模板的好处就在于,它能帮忙节省很多图形界面的设计时间,还有一些基础控制连接之间的麻烦。比如按键显示数据,串口和数据发送之间的约束。
如果是速成的话,我认为过多的纠结类的原理是没有必要的,了解应用方式可能更加重要。但如果是要进一步学习的话,还是要从头入门,先从控制台应用学起,了解了C#语言的架构,在有针对性的去学一个方向,比如数据库、地图、图像、算法之类的。
我自己本身的学习方法比较功利,或者说目的性过强。一般情况下,我不是先学会一门知识,再去应用它,大部分情况下,我是因为要参加某个比赛,或者被要求做某个工作,然后去学去用。
这个学习有好有坏,好处就是能够有压力带来的动力,时间的限制会逼迫自己高速的接收知识,但是坏处就在于对于知识的信息会有很大的取舍,会目的性非常强的把有用的信息提取出来,忽略掉次要信息。在一门语言,一个软件或者一款硬件的整体学习上,这个是比较不利的。
因此,
就C#的学习来说,如果只想为了比赛去做一款上位机软件,学个几天就可以了,对于硬件工程师来说,自己编写上位机软件是为了更好的调试硬件,只考虑实用性,但若是想在C#编程上更近一步的人来说,借助书籍去了解封装类的原理,会有利于更加灵活的编程和应用。
在这里插入图片描述
娱乐一下,奉上表情包一个。

菜鸡一个,文章看法和内容也许有问题。如有错误,请指正,感激不尽。

  • 15
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值