我之前有一小同事最近入门STM32,应该有一两个月吧。他对51还是挺了解的,但是处于STM32就遭遇到了一些问题。昨天拿着一块板子来找我,说有一些很诡异的事情。【我之前免费提ST向他科普了cube的用法 】我将问题概括如下:其一,程序下载进去之后不能工作;其二,不论怎么设置boot0/1自己编写的电灯程序都不亮。我看了一下板子和他的编写环境。首先它的板子不是官方板子,入门的话没有足够的资料,但是因为他没怎么学过英文,他理所应当的选择非官方却又中文的资料,资料少就少些吧。另外,他用的是UART ISP方式烧写。我首先问他等是不是没有上拉,引脚是不是没有设置成PP模式。他忽然间意识到自己的错误。另外他还说当他点击下载后运行,他用的FYISP还是什么的软件提示程序没有从0x8000运行。我说,我看了你的板子,没有设置成boot0模式。因为通过ISP下载必须让单片机进入 UART bootloader,这样boot0=1;boot1=0(?是不是零忘了)。然后又帮他装了MX和F1的cube,帮他设置keil的代码补全。然后在while里面用了两行代码,实现闪灯。 【HAL_GPIO_TogglePin】 [HAL_Delay] 我写上面不是要表明自己如何解决问题,以及别人怎么犯错。我只是想建议朋友们学习先从容易的来。 总结起来,有以下几点: 1、 尽量用通用的板子,说直白一点就是多用官方的板子,除非官方的板子是非主流。比如atmel的官方的板子就很少有人用。这一方面是arduino的流行,另一方面是官方板子的售价太高。幸运的是你正在用STM32,一百块钱就可以解决的问题。学习必须要花一些钱,起初的时候不妨对自己狠一点。多单身一会,你就挤出钱买块板子和模块。但花的太多,就只好想我一样落得单身唠。【 】2、要从最简单的方式和最新的方式开始学。我遇到很多人学C/C++必须从VC6开发开始。学习STM32必须从库函数开始,这也许没错,但是如果你几乎是零基础,你为何不先从直观的开始,如果有必要再学库函数和寄存器操作为何不可呐。有人总声称官方的cube库慢,道理的确如此,但是请问问大家有多少人对频率有很高的要求的。作为入门不要要求太高。不是说不能直接学习寄存器操作,学当然可以,但要选择实际。如果学知识为了显得自己更牛逼,那大可不必。你那么NB,不妨自己写个操作系统先。我们搞设计和产品的,一定要回到原点,知道自己学习硬件开发的出发点在哪里。应用为先,还是知识为先。【我不是说知识很重要『相反知识十分重要』,但脱离应用的知识有时难免鸡肋。】 3、要学会看图说话。我再学习STM32的初期,对时钟的配置很反感。因为我看了半天文档,也没有掌握时钟配置的全局。但是cube的一张图标图表帮我理解了很多。 4、多走一步。我之前告诉你的都是如何容易出发。但是不要忘了走的更远。STM32的面太广了,不只是SPI,I2C和定时器。它有更多的可能性。要不害怕尝试。比如你需要了解DMA先。屏幕和SD卡,USB也都要慢慢掌握。 5、学会分享,哪怕是最简单的点子。github会让你学会索取和分享的。 祝大家都有一门让自己对工作无比自信的技能。 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
必须的,谁没有当过新人。自己最近想入门一下freescale的单片机,也是新人。没办法...
学习共同进步