老司机

老司机们学习STM32的技巧

笑着哭i 提交于 2020-03-12 15:47:46
老司机们学习STM32的技巧 单片机用处这么广,尤其是STM32,这么火!如何快速上手学习呢? 你问,如何系统地入门学习stm32? 这本身就是一个错误的问题。假如你会使用8051 , 会写C语言,那么STM32本身并不需要刻意的学习。 你要考虑的是, 我可以用STM32实现什么? 对于传统的电子工程师来讲,使用库编程可能会感到有一点虚,感觉没有脚踏实地的感觉。但如果你写过web、写过服务器端代码、写过桌面端代码的话,你就一定会理解API、封装、抽象的意义。 对于这个话题,看看其他老司机们自己的看法: 菜鸟同学: 单片机本身没啥好折腾的,重点还是软件架构,针对项目设计软件,深度研究一种单片机,其他单片机都大同小异,大多数菜鸟都把时间荒废在单片机本身应用上,然后会几个外设就说的很简单怎么样,这个就是为什么现在单片机开发人员混杂的原因,都认为很简单,但是大部分都是蜻蜓点水,让其开发个项目试试,简直惨不忍睹,如果让其换一个芯片,这货估计就要折腾一个星期来熟悉芯片,所以大部分看到如此提问的我都不好意思回答。 Fddfhh: 刚开始发现一款比较有意思的产品,主控用的是avr,把里面的代码反编译之后就想抄了,仔细想想要是还用avr很快也会被别人给抄去,这个时候发现了stm32这个片子,还带USB,于是乎就把反编译出来的代码移植到了stm32上,把通信接口由uart改成USB。 上善若水: 1

Python3.8新特性-- 海象操作符

非 Y 不嫁゛ 提交于 2019-12-05 07:06:04
“理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打拼职场的老司机。 不记得没关系,只需要知道:有这么一位老司机, 穿上西装带大家打拼职场! 操起键盘带大家打磨技术! 2019年10月中旬,Python 3.8发布了。 英语好的Python爱好者,可以看看官宣: https://docs.python.org/3.8/whatsnew/3.8.html 今天老司机给大家介绍一个Python3.8中,比较有争议的新运算符,海象运算符(Walrus)。 海象运算符,其实只是冒号和等号在一起,就像这样:“:=”。是不是像海象的一双眼睛和一对獠牙? 这个新运算符(:=)使我们能够将值赋给表达式中的变量。 简单粗暴地讲,将计算结果赋值给某个变量,再判断这个变量。 我们来举个栗子: 本来应该是下面这样一段简单程序。 list1 = [1,2,3,4,5] b = len(list1) if b > 3: print(“larger than 3”) 使用了海象运算符,两行并一行,就变成了这样了: list1 = [1,2,3,4,5] if b := len(list1) > 3: print(“larger than 3”) ## 运行结果: larger than 3 必须是Python 3.8上才能运行通过的。 再看个例子: list1 = [1,2,3

基于C#初学者简单串口通信

匿名 (未验证) 提交于 2019-12-02 23:32:01
说起串口通信很多初学者可能跟我一样,起初感觉通信这东西是非常复杂,很害怕接近这东西,其实一步一步了解,代码一个模块一个模块的完成,最后发现实现过程非常Easy,接下来我们就一起探索一下。 1.啥是串口,我可以明确告诉你,我没干过硬件,我只知道串口是一根线,这线叫啥名字呢,有的叫RS232,有的叫RS485有兴趣的同学可以查一下,上位机的同学只需要知道这根线是用来通讯的就完事了, 串口通信都要用到以上2种线,一头接设备,还有一头接电脑,你要确保你电脑机箱上也要有RS232的口,如果没有那你就需要买一个RS232转USB的接线去连接你的电脑.然后去检查你的电脑设备上有没有显示出你的端口,具体操作鼠标右键你的电脑,属性>设备管理器>端口,看一看有没有可以使用的端口一般叫做 com1,com2,com3 ......,如果发现有 三角形警告图标 ,那你要注意是不是驱动没装,把驱动装一直下一步结束,用串口线把电脑和设备接好之后进行下一步。 2.设置串口线, 看一下这个设置,个人理(大家还是百度把这几个搞清楚,不用死机知道干啥用就OK) 波特率:听着这名字就感觉和速度有关,直接就当作数据传输速度的大小吧。 数据位:数据位是啥,一个数据多少位,5,6,7,8都行,看你下位机大佬指示他说多少是多少。 校验位:数据你丢过来,我咋知道有没有丢失,或者数据有没有错误,这个校验位就是干这活得,有奇,偶校验

Python3 并发编程4

二次信任 提交于 2019-12-02 06:56:13
目录 Event事件 线程池与进程池 基本概念 使用方法 和信号量的区别 协程(coroutine) 基本概念 实现方式 高性能爬取梨视频 Event事件 用来控制线程的执行 e.isSet() 查看对象e当前的信号状态, 默认为False e.wait() 信号状态为False, 则当前线程阻塞 e.set() 将e的信号状态设置为True, 被阻塞的线程进入非阻塞状态 from threading import Thread from threading import Event import time e = Event() def light(): print('*********红灯!**********') print(f'对象当前的信号状态为{e.isSet()}') time.sleep(5) print('*********绿灯!**********') e.set() # 将e的信号标准设为True print(f'对象当前的信号状态为{e.isSet()}') def driver(name): print(f'{name}正在等红灯!') e.wait() # 如果e信号标志为False, 则当前线程阻塞 print(f'{name}弹射起步!') if __name__ == '__main__': t1 = Thread(target=light) t1

一篇文章说尽所有软件发布

主宰稳场 提交于 2019-11-30 15:53:26
高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。——鲁迅 即使作为非开发工程师,相信很多人也听说过“金丝雀发布”、“滚动发布”和“蓝绿发布”等术语。 老司机想通过一篇文字给各位分享一下常见的几种发布模式,让开发或者非开发人员对软件发布一个更为清晰全面的认识,让大家能够根据自己的所在团队的情况,对发布策略给出正确的实践,必要时候参与讨(si)论(bi)。 1、 金丝雀发布 金丝雀 (Canary) 测试。源于以前矿工下矿洞前,先会放一只金丝雀进去探是否有有毒气体,看金丝雀能否活下来,由此得名。 简单的金丝雀测试一般通过手工测试验证,复杂的金丝雀测试需要比较完善的监控基础设施配合,通过监控指标反馈,观察金丝雀的健康状况,作为后续发布或回退的依据。 金丝雀发布,一般先把新版本发布到单集群1台服务器,或者一个小比例,主要做流量验证用。 如果金丝测试通过,则把剩余的原有版本全部升级为新版本。如果金丝雀测试失败,则直接摘除金丝雀的流量,宣布发布失败。 金丝雀发布,简单可控不粗暴!初创型公司比较适合。 2、 一群金丝雀发布 单服务器集群滚动发布,老司机给起个名字叫“一群金丝雀发布”。 单服务器集群滚动发布,在金丝雀发布基础上的进一步优化改进,是一种自动化程度较高的发布方式,用户体验比较平滑

职场上罕见张小敬,办公室常常有元载

僤鯓⒐⒋嵵緔 提交于 2019-11-27 02:28:47
“理论联系实惠,密切联系领导,表扬和自我表扬” 大家好!我是IT老司机,Arthur老师。今天继续给大家 解读职场 。 2019年的夏天,影视圈出现两个现象级的作品。电影是《哪吒》,电视剧则必须是《西安二十四小时》, 《长安十二时辰》 。 一张小敬-职场“实干家” 男主角张小敬 ,九年长安不良帅,正义感爆棚,要武功有武功,要女人缘有女人缘,要胃口有胃口(无非就是吃了两碗水盆羊肉、俩火晶柿子、李必给他的汤饼、老三那里的胡饼和肉……) 如果不是反派和右相的人不断为难掣肘,张小敬几乎是个唐代的李云龙, 看着就让人痛快,让人解气,让人热血沸腾 ! 老司机在之前文章中谈到过为什么 “李云龙” 或者 “魏璎珞” 这种角色特别受欢迎,尤其受到职场白领们的喜爱。 原因很简单,多数人职场上小心翼翼、如履薄冰,很少敢于流露真实情绪,终于看到一个 敢说敢干的角色 ,情不自禁就 把自己代入到角色之中 。 男的恨不得自己变身成李云龙,女人巴不得自己穿越成魏璎珞。 现实终究是现实。 电视剧里的张小敬的业务能力突出,有领导力,有号召力,但是脾气确实不好。 影视作品里的张小敬,可以稳稳地做九年不良帅。 现实中的“张小敬”们,不少未必能在一个环境里工作那么久, 大概率是频繁跳槽 , 到一定年龄也就没有那么大冲劲了 ,心中的“张小敬”消失了。 所以说,职场上罕见张小敬。 二元载-职场“心机biao”

Cypress自动化测试系列之二

家住魔仙堡 提交于 2019-11-26 12:25:55
本文技术难度★★★,如果前编内容顺利执行,请继续。 如果Selenium尚无法灵活运用的读者,本文可能难度较大。 “理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打拼职场的老司机。不记得没关系,只需要知道:有这么一位老司机, 穿上西装带大家打拼职场! 操起键盘带大家打磨技术! 上一篇IT老司机带着各位已经成功安装了Cypress,并且让Cypress成功运行起来了。上篇任意门☛ (后Selenium时代,网页自动化测试用Cypress) 本篇,IT老司机教你写第一个Cypress测试用例。 · 正 · 文 · 来· 啦· 首先,回忆一下,怎么运行cypress?用npm命令安装cpress。新建一个web工程的目录,执行npx cypress open,然后稍等一会儿。命令成功返回,则当前目录出现一个cypress目录。同时,一个对话框出现,cypress执行界面出来了。 点开“examples”前面的三角图标,里面是示例test cases. 点击里面的具体js文件,就开始执行测试用例了。 当然,可以点右上角的“Run all specs”,执行全部用例。 Cypress界面出来了,就别关了。 起码在读者阅读完本文前,都不要关! 然后,我们可以学习今天的内容了。先写一个最近简单的test case。 在 cypressintegration