[STM32F4]

经过9981难终于点亮LED了

[复制链接]
710|13
手机看帖
扫描二维码
随时随地手机跟帖
zhongrt|  楼主 | 2024-4-26 17:32 | 显示全部楼层 |阅读模式

      前言:平时硬件涉及的多些,早些年写过PIC的程序;头两年用过STC的MCU,都是8位的片子。最近由于新的CASE可能会有更高的需求,所以想自学一下STM32这个32位的片子。虽然自认为有一定的软件基础,但STM32跟之前的知识可以说完全不同,期间几度想放弃,幸亏现在网络资源很强大,再查找大量资料后终于点亮了第一个LED灯程序,只是还有个问题依然没有解决,留到后面再说。
      一、库函数和头文件
     先前不论是PIC还是STC都是直接配置寄存器的方式来编程,但是看资料介绍STM很少用这种方式,大多数人是用标准外设库函数(貌似ST公司也开始淘汰这种方式了)和HAL函数库。刚开始我也是准备用HAL函数库的方式,因为很多操作都是图形化的,只是从ST官网下载PACK时总是失败,所以放弃了,改用KEIL+标准函数库的方式。网上很多资料和例子都是基于F1系列的,而我这次使用的是F4系列的片子,所以按照网上的资料各种复制粘贴“启动文件”和“头文件”,结果一编译全是错误,折腾了几天,最后终于找到了一个F4的教程才解决。
      二、编译器版本
      之前装的KEIL和ARM C编译器是6版本的,编译器时很多头文件里的字符都报“没有定义”的错,上午查资料才发现要用5版本的ARM C编译器。下载安装后终于编译成功了。
      三、ST-LINK无法烧写程序
     编译成功后就是用ST-LINK烧写到自己做的小板子,(注意是自己做的板子)但是始终提示找不到目标芯片,无论是用KEIL软件,还是STM32 ST-LINK Utility都一样,也去网上下了STM32CUBE PORG(好像是叫这个名字,此时已卸载)也一样找不到芯片。拿同事的板子,就能烧写,所以排除了ST-LINK本身的问题和接线的问题,也把芯片外围所有的元件都去掉了,还是BOOT0和BOOT1的各种组合,都是不行,包括有资料说要按住RESET脚烧写,反正是各种折腾都失败了。后来继续网上找资料,发现有人跟我同样的问题,TA的原因是有个VDD引脚没连好,我又去量了下,各个电源脚的电压都是正常的,突然想起来有个"VDDAREF+"脚我没用到,好像是悬空的,然后直接拉到VDD脚,终于能下载了。开心到飞起。。。。。。
      四、程序烧写后不能运行
      烧写提示成功后,LED灯并没有预期的亮起来,代码检查了几遍,确认是没有问题的,也更好过其它IO口试过。网上找资料,看到很多人说下载后要复位一下才能运行,结果试了一下,还真是这样的,至此总算能愉快的写代码了。
      但转头一想,应该也有解决办法吧,再次问度娘,看到大部分方法都是在STLINK的设置里把“复位和自动运行”选上,还有个什么“ENABLE”的勾去掉。按此操作后,确实下载后会显示"Application running...",但硬件上还是没自动运行,需要复位一下才行。好在影响不大,那就后续再研究吧。

使用特权

评论回复
zhongrt|  楼主 | 2024-4-26 18:12 | 显示全部楼层
最后一个问题也终于解决了,原来是之前瞎摸索的时候自己把DEBUG里的复位方式改成了硬件,改回Autodetect后就无需再手动复位了。

使用特权

评论回复
mmuuss586| | 2024-4-27 12:11 | 显示全部楼层
加油

使用特权

评论回复
yangxiaor520| | 2024-4-27 12:15 | 显示全部楼层
点亮LED都要经过9981难的话,那你后面的难关得有多大。

使用特权

评论回复
评论
一叶倾城wwq 2024-4-27 16:31 回复TA
哈哈,后面难度N++次方 
qintian0303| | 2024-4-27 14:36 | 显示全部楼层
恭喜恭喜,点灯成功,这是最重要的一步,后续只能是越来越顺的

使用特权

评论回复
strang| | 2024-4-27 16:56 | 显示全部楼层
生命不息 学习不止,加油

使用特权

评论回复
coody| | 2024-4-27 17:26 | 显示全部楼层
单片机都差不多的,既然你以前写过单片机程序,没理由换一个型号这么困难的吧? 2006年我一次用32位的LPC2148比STM32难用得多,但也很容易转过去的,2007年转STM32也是很容易的。

使用特权

评论回复
shenxiaolin| | 2024-4-28 15:33 | 显示全部楼层
恭喜恭喜,解锁新的单片机

使用特权

评论回复
我想看大海| | 2024-4-28 16:31 | 显示全部楼层
完事开头难,后面会越来越难

使用特权

评论回复
中国龙芯CDX| | 2024-4-28 18:07 | 显示全部楼层
点亮LED不是直接驱动IO嘛?有这样的一个难度?

使用特权

评论回复
鹿鼎计| | 2024-4-28 19:52 | 显示全部楼层
很多经验都是踩坑出来的!

使用特权

评论回复
软核硬核| | 2024-4-28 20:31 | 显示全部楼层
欢迎进入32位单片机的世界~单片机可好玩了。

使用特权

评论回复
yzzly| | 2024-4-30 15:06 | 显示全部楼层
如果8位单片机软硬件基础扎实,使用32位单片机很简单的事情。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

42

帖子

2

粉丝