我不是专业的嵌入式攻城狮,也不是专业的嵌入式程序员,但我每天都能遇到很多让我头疼的专业问题。
最近在淘宝购物,顺手拿了一片F030F4,回来搞了个板子。拿stlink utility读半天读不出来,但发现如果用手摸boot0或nrst有救。
搞半天不知道咋回事,最后给nrst上拉10k,问题解决。经验:不要相信pdf里面写的内部上拉。
用stlink util可以读写了,下面装最新版的EWARM7.2。不想再折腾standard peripheral library,于是去下了stm32cubemx(主程序)和stm32cubef0(f0支持代码),试试ST最新的软件解决方案。
点开界面,豁然开朗,总之懂的同学一定懂的,看图
熟悉的字眼们出现了。以往需要看4个小时例程,复制黏贴30次,编译修改50次才能跑起来的东西,现在全部是自动生成的了,只需要弄一弄选框,点几下按钮。
生成代码不止,还会生成IAR项目,直接双击IAR打开就可以Ctrl+D编译加运行了,岂不快哉?
需要的东西,被st新搞的HAL(硬件抽象层)都打包了,初始化代码也全都分别写好并加到main()里了,只留下一个while(1)给程序员深思。翻阅2分钟库代码之后,我写出了如下程序:
其中while循环里面的两行代码是我写的。功能就是不断地在串口输出脏话。编译运行,打开示波器,熟悉的8None1波形出现在普源泛黄的显示屏上……
最后谈个小插曲,EWARM7.2刷不进f030,不知道为什么flashloader会出错。可以尝试把flashloader文件的f051换成f050(这是两个版本中,项目的options里找到的唯一区别)
删掉,装EWARM6.7,重新生成代码和项目文件,一切正常
|