搜索
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32F1] 【我与ST MCU的故事】+STM32之“103”

[复制链接]
959|13
 楼主 | 2019-3-8 17:04 | 显示全部楼层 |阅读模式
本帖最后由 lihui567 于 2019-3-15 13:28 编辑

      STMCU中文论坛已经12年了,我毕业时间都快赶上了,回忆满满的,故事杠杠的。
    万事开头难,回忆自己当时学习stm32的历程,有寂寞,有欢喜,有辛酸,有成就,但是有stm32官网中文论坛资源的支持,入门学习还是非常容易上手的,看stm32数据手册和参考手册,库函数编程和例程,看的滚瓜烂熟,到实际项目中还是不会,没办法,多敲代码,多做DIY,慢慢的就把程序都融入到stm32项目中了,为了快速编程,不得不学习盲打,这样编程速度提上去了,开发项目的效率也大大提高了。

  这是当时学习51做的电子时钟,全部手工焊接,搭建电路,电子时钟由8位共阳数码管、stc12c5a60s2单片机、74HC373、74hc245和三个按键组成。单片机的P1口接245并串电阻来驱动数码管的位选,P2口接373来驱动数码管的段选,还有三个按键接P0口来控制时分秒的加减。
  原理图                                                            
79975c8b2808f2583.png             
  效果图
520185c8b284250ca8.png
有了51的编程基础,开始了人生的stm32学习,这是16年还是17年,在STMCU论坛参加活动送的STM32F103Nucleo-64的开发板,正好也是我学习stm32的入门的板子,这个是STM32官方推出的,IO口引脚全部引出,完全兼容ARDUINO,可以看到更换的单片机和外部8M晶振,在学习过程当中不小心12v的电源碰到IO口,结果单片机挂了
1.jpg
1.png
这个板子有好多SB接口,在入门学习过程当中非常方便把某些引脚短路或断路的。当时的确碰到SB接口的问题了,自己没有从板载USB口供电,直接外置3.3V电源给单片机供电,结果下载程序重新上电后发现单片机启动非常慢,原来是工作单片机的复位脚NRST和烧录程序单片机的T_NRST引脚用0欧电阻连接,于是在电路板上找到sb12接口,把0欧电阻焊接掉就ok了
234355c8b2a9f43b17.png     15735c8b2aaf75549.png
从这个板子学习过程当中,发现遇到问题不可怕,可怕的是遇到问题退缩,长时间不去解决,凡是顺腾摸瓜,总能解决问题的,特别是以前用的STD库,现在用HAL库,不得不转换思想,去适应新的STM32CubeMx图形编程工具 。














2.jpg
132775c8b28263e429.png
| 2019-3-9 11:04 | 显示全部楼层
我获得过好几块类似的板子

使用特权

评论回复
 楼主 | 2019-3-9 11:39 | 显示全部楼层
都是啥型号啊

使用特权

评论回复
 楼主 | 2019-3-10 09:31 | 显示全部楼层
在学习这个103板子几大难点
1.flash模拟eeprom
2.USB模拟串口
3.GUI实验

使用特权

评论回复
 楼主 | 2019-3-10 09:38 | 显示全部楼层
本帖最后由 lihui567 于 2019-3-15 12:42 编辑

先看第一个问题,这个也是参考中文论坛的源码学习的 1.png
先看Flash操作的简单流程
1、确定要写入Flash的首地址(稍后介绍确定地址的方法)
2、解锁Flash
3、对Flash进行操作(写入数据)
4、对Flash重新上锁
但是在实际项目中,直接操作FLASH地址的话,会导致单片机flash寿命大大降低,具体用啥方法呢,在官方给的优化文档中,采用虚拟地址的方法
161205c8b2ce7702dc.png
意思就是如果变量是 16 位,则每个变量都占用 32 位( 16 位数据加 16 位虚拟地址),这意味着每次写入新数据时,各个变量分别使用 4 字节的 Flash 。也就是每个变量实际占用四个物理地址,每个 1 KB 页在变满之前可执行 256 次 变量写入。
看看项目中具体怎么用,还是以开发板为例,64K的flash,程序中我们选择后4k作为物理地址来存储数据
#define EEPROM_START_ADDRESS    ((uint32_t)0x0800F000) /* EEPROM emulation start address:
after 4KByte of used Flash memory */
结束地址就是0x0800FFFF,就是4k的空间
程序刚开始需要对flash初始化,EE_Init()这个函数是必须的
935915c8b2d2382365.png



STM32F10xxx闪存编程参考手册.pdf

464.42 KB, 下载次数: 2

STM32模拟EEPROM的使用和优化.pdf

288.75 KB, 下载次数: 1

STM32模拟EEPROM的虚拟地址.pdf

431.59 KB, 下载次数: 2

使用特权

评论回复
 楼主 | 2019-3-10 09:45 | 显示全部楼层
本帖最后由 lihui567 于 2019-3-10 09:48 编辑

第二个问题就是USB模拟串口,当时也是在工作中需要usb和上位机通讯//bbs.21ic.com/icview-2515012-1-1.html
1.png
但是对于USB通讯这块也是比较复杂的,真正把这块的全部功能完全吃透需要时间的

使用特权

评论回复
 楼主 | 2019-3-10 09:50 | 显示全部楼层
第三个问题就是GUI了。在103上的简单入门,写的挺好的,后续我们是在429上应用GUI了//bbs.21ic.com/icview-2383616-1-1.html
1.png



使用特权

评论回复
 楼主 | 2019-3-10 09:52 | 显示全部楼层
总之,总体来说,学习stm32编程中。在中文论坛好多提的问题也是自己值得学习的,很有可能在工作上就遇到了

使用特权

评论回复
| 2019-3-10 10:42 | 显示全部楼层

070,030,413等等

使用特权

评论回复

评论

lihui567 2019-3-10 22:13 回复TA
有F429没? 
| 2019-3-11 08:52 | 显示全部楼层

忘了,可能没有。

使用特权

评论回复

评论

lihui567 2019-3-13 15:48 回复TA
好的 
| 2019-3-13 17:38 | 显示全部楼层
Cjy_JDxy 发表于 2019-3-9 11:04
我获得过好几块类似的板子

也可以出来分享啊

使用特权

评论回复
| 2019-3-13 18:16 | 显示全部楼层

不好意思,我的都卖掉啦

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表