我想在项目中使用我的第一个STM32 MCU。该项目涉及一些外围设备(UART/SPI/I2C),需要在这里和那里做一些数学运算,主要是位移位和/或整数计算,因此我为自己找到了一个带有所需外围设备、内部振荡器、足够闪存程序空间和RAM的MCU,用于我的应用程序。
所以我找到了这个小男孩:STM32L051K8T6在LQFP-32,数据表
我浏览了数据表,一切似乎都很清楚,我没有问题来挑选新的东西,IDE和所有,然而,我有两个问题,我不能谷歌明确的答案,无论如何社区可以更有帮助:
我希望能够通过社署编程。这是两线通信,对吧?SWDIO SWCLK。所以,在理论上,如果我为MCU提供电源,我只需要2个引脚将自己连接到MCU(或者也可能重置?理由是连接,很明显)。我是说,我不需要大的10针连接器之类的?很像Atmegas通过UART(需要RX, TX和DTR脉冲到MCU复位)。google ST-Link v2 pinout只显示了这两个和一个我不知道的“SWIM”pin。(在数据表中从未提及;我实际上有一个ST-Link v2,甚至一个核板与板上的程序员,但,再次,它从来没有伤害问聪明的人)。
SWDIO和SWCLK被标记为引脚的“Alternate functions”。因此,我假设,我将无法通过SWDIO/SWCLK编程,因为引脚没有配置为SWDIO/SWCLK默认。我需要使用BOOT0吗?从内部存储器的引导加载程序激活SWD引脚为我编程闪存?在这个特定的情况下,也没有BOOT1引脚(Ctrl+F“BOOT1”在整个数据表中没有产生有用的提及)。
我想有用户可更新的软件。通过USB。使用ATMega很容易做到,我刚刚加入了一个USB-UART CP2102N,它就像一个魔咒,可以整天更新软件。我想我可以为STM32编写我自己的UART引导程序,这只是一个决心和服用药片的问题,在这个过程中保持清醒。但如果有更简单的方法,我不想重新发明轮子(尽管nucleo上的编程部分看起来比CP2102N芯片大得多)。在使用UART时找到此文档:STM32引导装载程序UART看起来很有希望,我猜用CP2102N编程STM32似乎不太困难吧?
当然,我也在youtube上看了一些关于STM32的视频,但它们基本上是“闪烁的”与nucleo,而不是与独立的设备,所以没有太多的谈论数据表,替代功能,通过寄存器控制东西;无论如何,设置I2C或SPI都不是问题。基本上,我没有问题控制寄存器和东西,我只需要让它先运行。这就像我能开车,但我没有启动引擎的钥匙——或者我有钥匙,只是我没有意识到。为了不让汽车一点火就爆炸,我宁愿先问问题。
谢谢你!