如何编程STM32

第2部分:工具链和软件安装 前一篇博客的摘要 在最后一部分中,我们简短地讨论了该系列的思想,并接触了必需的文档以开始对微控制器进行编程。 如果您出于好奇而阅读了其中一份文档,则会发现有很多页面需要摘要。 当然,我们不会阅读所有内容,但会不时阅读。 这使我想到一个故事,一个学生问我关于工程师最重要的技能之一。 我只是简单地回答:“阅读很多东西并找到正确信息的能力”。 作为工程师,我们花了大量时间浏览大量数据表,应用笔记,参考手册或原理图,但并非每个供应商都提供良好的文档。 回到今天,我们将讨论(主流)工具链来对微控制器进行编程和安装过程(是的!!!!!!) 通过暗示“主流”工具,我的意思是,我们将使用供应商正式支持的工具。 我们可以轻松地进入供应商的论坛提出问题或发出票证以获取工程师的支持(只要您说服他们使用花哨的闪烁LED应用程序每年可以生产1万件,您就会得到答复)。 IDE –集成开发环境 对于一般的程序,我们首先想到的是IDE,那么它是什么? 对于非常“学术/长期/不确定它是否准确”的定义,请使用维基百科。 但基本上,IDE包括: 文本编辑器,您可以在其中编写代码并设置代码格式 编译器,一种检查语法错误并将您的代码转换为机器代码的工具。…

为什么要加入DiV姐妹会

在一些会议上,常春藤小姐与我们交谈了有关成功之旅中我们需要了解的重要事项。 她甚至还教过如何改进我们的简历和LinkedIn。 她也向我们介绍了积极肯定的力量,我们习惯于每天早上上课前对自己说积极的话。 这非常有帮助,因为随着时间的流逝,这些话在您的生活中始终如一,您将看到结果。 我们也有专人来分享他们的故事,这些会议确实令人鼓舞和鼓舞。 我们进行了一些额外的课外活动,包括“女孩谈话”,“我陷入困境的一天”,辩论,开幕式以及其他一些有助于训练营有趣部分的活动。 即使在情人节,我们也度过了一个激动人心的有趣时刻,爱情像五彩纸屑一样散落。 我们给它贴上了秘密好朋友的标签,一个姐姐为她的好朋友送了礼物。 有时,我们面临挑战。 尽管有时他们很害怕,但他们推动了我们的能力,极限和信心。 调试会话也非常有帮助,也很有趣。 在最后一天的前夕,我们度过了一个全家人聚会的时间,他们比萨饼,唱歌,互相拥抱,甚至有人哭泣。 那是一段美好的时光,非常感谢彼此的存在和了解。 整个训练营都很棒。 我很高兴自己能参与其中,因为我学到了很多东西,并影响了我的生活。 不应阻止女孩追求其STEM兴趣。 我们必须成为变革的推动者,并不断追求更高的境界! 代码…连接…协作…

OOP的工艺

截至目前,世界正在迈向新技术时代。 人们可以通过他人,他人或通过互联网快速学习,无论您从哪里学习。 最重要的是您正在学习。 好吧,不久前,我与我的一个朋友进行了互动,他告诉了我有关计算机编程的事情。 我不知道那是什么,至少实际上不知道。 因此,我对它非常感兴趣,并开始研究计算机编程的一些不同部分,因此我选择了一种编程语言(python)并开始自己学习。 我不会过多地介绍如何在python中构建基本应用程序,但是,是的,所有这些都在本地服务器上运行。 一个月后,我决定是时候向这个领域中有经验的人学习。 那让我参加了技术研讨会,并结识了一些新人,这些新人知道我在计算机领域不了解的东西。 我参加的一个讲习班之一是向我们传授一种计算机编程技术,称为大多数对象所熟悉的面向对象编程或简单的面向对象编程。 起初,我以为我是在一次错误的会议上,也许演讲者是那个迷失的人或某物,但随后坐了下来听。 然后,演讲者在某些时候提到了python,我想,哦! 是的,我知道python,毕竟我不在错误的房间里。 演讲者无论那天打算做什么,都表现得非常出色,我的意思是他很清楚,而且像这样,但作为一个新手,在现场,我完全迷失了OOP的手艺。 我有几个术语,例如继承,多态性,封装和使用类编写代码。 最好的部分是用OOP方式编写python代码,这真的很有趣,尤其是当演讲者拿出一些使用OOP编写的python代码时。 我看了一下代码,取出了我之前编写的python代码,将两者进行了比较,我的想法很糟糕。 我的代码中没有任何内容显示OOP的任何实现。…

死锁的坏兄弟Livelock

想象一下,夫妻俩最近搬进新房子后共进晚餐。 他们只有两个人的汤匙(其余在移动的面包车中),而且他们都很有礼貌。 如果他们还没吃饭,他们就把汤匙交给配偶。 这是一个活锁可以做什么的真实示例。 在讨论活锁之前,我们必须首先解释什么是死锁。 死锁是一种情况,而不是例如锁和信号量之类的对象。 当两个或多个进程拥有一个资源并等待同一组进程中的另一个进程拥有另一个资源时,就会发生这种情况。 这是为了防止任何进程前进到下一个状态。 您可以举一个“现实世界”的示例,其中两个人在画,但是只有一支铅笔和一根直尺用于两个。 如果一支铅笔的人需要尺子,而一支铅笔的人需要铅笔,然后再完成尺子,那么这两个请求都无法满足,那么我们就会陷入僵局。 但是活锁呢? 活锁是死锁的一种特殊情况,其中死锁中涉及的进程在彼此之间不断变化的状态而无法前进。 与其中涉及的所有进程都处于等待状态的死锁相比,活动锁中涉及的进程可以同时运行。 另一个真实世界的类比是两个人在一条狭窄的走廊里互相走动。 他们俩都想保持礼貌并向一边走,但他们不断向同一边走,因此无法前进。 当算法解决检测并解决死锁情况时,可能会发生活锁。 如果一个以上的过程起作用,则该算法可以重复触发。 显然,可以通过确保在特定时刻只有一个进程可以操作来轻松避免这种情况,但这不会阻止死锁的发生。…