文号
t65768
阅读
11131
回复
11
收藏
8
聊聊这两天搞STM32的一些心得
2014/06/24
IP:广东
本帖最后由 novakon 于 2014-6-24 01:54 编辑

我不是专业的嵌入式攻城狮,也不是专业的嵌入式程序员,但我每天都能遇到很多让我头疼的专业问题。

最近在淘宝购物,顺手拿了一片F030F4,回来搞了个板子。拿stlink utility读半天读不出来,但发现如果用手摸boot0或nrst有救。
搞半天不知道咋回事,最后给nrst上拉10k,问题解决。经验:不要相信pdf里面写的内部上拉。

用stlink util可以读写了,下面装最新版的EWARM7.2。不想再折腾standard peripheral library,于是去下了stm32cubemx(主程序)和stm32cubef0(f0支持代码),试试ST最新的软件解决方案。
点开界面,豁然开朗,总之懂的同学一定懂的,看图

QQ截图20140624014005.jpg

QQ截图20140624014025.jpg

QQ截图20140624014049.jpg

熟悉的字眼们出现了。以往需要看4个小时例程,复制黏贴30次,编译修改50次才能跑起来的东西,现在全部是自动生成的了,只需要弄一弄选框,点几下按钮。

生成代码不止,还会生成IAR项目,直接双击IAR打开就可以Ctrl+D编译加运行了,岂不快哉?

需要的东西,被st新搞的HAL(硬件抽象层)都打包了,初始化代码也全都分别写好并加到main()里了,只留下一个while(1)给程序员深思。翻阅2分钟库代码之后,我写出了如下程序:

QQ截图20140624014832.jpg

其中while循环里面的两行代码是我写的。功能就是不断地在串口输出脏话。编译运行,打开示波器,熟悉的8None1波形出现在普源泛黄的显示屏上……

最后谈个小插曲,EWARM7.2刷不进f030,不知道为什么flashloader会出错。可以尝试把flashloader文件的f051换成f050(这是两个版本中,项目的options里找到的唯一区别)

删掉,装EWARM6.7,重新生成代码和项目文件,一切正常
+50
科创币
trample
2014/06/24
心得啊
11
12年6个月前IP:未同步
697147
1楼
。。。
引用
评论
12年6个月前IP:未同步
697168
2楼
我看见fuck you  哈哈哈哈
引用
评论
12年6个月前IP:未同步
697170
3楼
keil怎么办?
引用
评论
12年6个月前IP:未同步
697172
4楼
张静茹 发表于 2014-6-24 11:58
keil怎么办?


st原文:
◾C code project generation covering STM32 microcontroller initialization compliant with IAR™, Keil™ and GCC compilers.

看来是支持的,我也准备下载一个来玩玩
引用
评论
12年6个月前IP:未同步
697174
5楼
cccyl 发表于 2014-6-24 12:06
st原文:
◾C code project generation covering STM32 microcontroller initialization compliant ...


IAR  Keil GCC都能用?
引用
评论
12年6个月前IP:未同步
697175
6楼
张静茹 发表于 2014-6-24 12:10
IAR  Keil GCC都能用?


keil iar的工程只是启动文件稍有不同,相互之间转换很简单的
引用
评论
12年6个月前IP:未同步
697176
7楼
超级玛丽 发表于 2014-6-24 12:14
keil iar的工程只是启动文件稍有不同,相互之间转换很简单的


哦 还真没用过IAR
引用
评论
12年6个月前IP:未同步
697181
8楼
赞一个,确实比直接用固件库更易于上手
引用
评论
12年6个月前IP:未同步
697407
9楼
问题是这玩意好像不支持F10x系列的时钟配置生成。。。
引用
评论
12年6个月前IP:未同步
697594
10楼
楼主有空能写个stm32cubemx的简易教程吗?不太会用啊[s:4]
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的