历史上的今天
今天是:2025年12月14日(星期日)
2022年12月14日 | 原来STM32单片机的开发如此的简单
2022-12-14 来源:zhihu
大家好!
今天我们讲下用STM32CubeMX和Keil5点亮一个LED,这个项目比较简单,大家都可以尝试下。

这个就是我们今天的主角,这款单片机芯片是STM32F030K6T6。

这个开发板非常简单,里面的芯片是STM32 F030 K6 T6,它有32个引脚,在它旁边这个一个八兆的晶振,然后晶振左边是电源芯片,可以把5伏电压转换成3.3伏电压给单片机供电。开发板右侧有一个按键reset按键,旁边是下载口。
为什么用这个芯片呢?因为这个芯片它非常便宜啊!在网上买的价钱才几块钱,这整块开发板下来才十多块钱包邮,对于一些刚刚开始学单片机的童鞋来说它的功能够用,重点它很便宜哈哈哈。

废话不多说,开始实操吧!

我们首先打开CubeMX,然后输入芯片的型号STM32F030K6T6,可以看到封装LQFP32,然后32K的flash,4K的RAM,25个IO口,最高工作频率可以达到48兆。

打开操作界面,先把芯片的串行下载口打开。选中Debug serial wire之后,我们可以看到时钟和IO这两个针脚已经显示绿了也就是生效状态,这样就可以往里面下载程序。

把要控制的led对应的io口状态配置成输出状态,选择GPIO output。

配置时钟,晶振暂时就不用了,直接用内部的RC振荡器就好,频率选4x9,它的频率就是36M。(用RC呢,最高就是36M)

打开midi文件找到main函数,HAL库初始化,系统时钟配置,GPIO初始化,然后看到while(1),我们的程序就写在这。
我们知道要想让led闪烁起来,必须让他对应的IO口先置低电平,然后再置高电平这样无限的循环下去灯就会闪烁起来。

先用HAl库函数来先写第一句,置PB7低电平,然后来一个延时500毫秒。置高电平就把上面的程序拷贝下来,把reset改成set就可以了。

然后我们再设置一下编译参数,输出这项用户信息可以去掉,不然的化编译太慢。

然后下载选项里边我们选上Reset and Run,至于其他的选项就不用管它了。
开始编译程序,编译完成0错误,0警告,这就代表程序已经编译好了。
就要把编译好的程序下载到单片机里边,然后把数据线插上,把这个下载器插到usb接口里链接电脑之后就可以看到led已经亮起来了。
但是因为里面没有程序呢,所以这个灯是不受控的,他只是简单地亮起来。
把我们刚写好的程序下载到单片机里,点击程序的Load按钮直至下载完成。程序已经下载成功之后我们会发现单片机上的灯已经一闪一闪的亮起来了,亮0.5秒,灭0.5秒。
在这1个小项目里面我们学到了几条的HAL库函数语句。分别是给端口置高低电平、延时语句,还有端口电平反转语句。
怎么样,看了这期干货之后,是不是觉得STM32单片机的开发特别简单呢?心动不如行动,你也赶紧试一试吧。
史海拾趣
|
集成运算放大电路是一种直接耦合的多级放大电路。它的放大倍数非常高、输入电阻也高,输出电阻低,应用非常广泛。它的内部电路比较复杂,但一般由四部分组成:偏置电路、输入级电路、输出级电路和中间级电路。各部分电路特点为: ...… 查看全部问答> |
|
问题是这样的:单片机可以定时,也可以计数,现在我想通过给单片机外部(T0口)加一定频率的脉冲,通过一定得算法把这个频率算出来。 请给一个思路,我对计数不是太了解。是不是TMOD=0x05;(采用计数方式1),然后查询TF0==1?可是,我想估计还要一 ...… 查看全部问答> |
|
这几天一直在找那个T6963的打点程序,今天终于找到了,贴上来和大家分享 T6963控制240*128点阵屏,Proteus中仿真模型有LM3229,大家可以仿真 我已经试过了,没有问题的,大家放心使用 子程序如下, /***************************************** ...… 查看全部问答> |
|
Error Signature:-- EventType:WinCE600BEX, P1:meruntime.exe, P2:6.0.0.0, P3:4a972256, P4:coredll.dll, P5:6.0.0.0, P6:4aaa7472, P7:00032897, P8:meruntime.exe, P9:6.0.0.0, P10:4a972256 Reporting Details:-- This error report includ ...… 查看全部问答> |
|
我的系统是WINCE5.0+Pxa300,WIFI是用的Marvell的8686 我编出来的镜像,在通过如下操作:禁用,挂起,复位 后会出现一个“倒T”的图标,这个图标在Public下可以找到,lan_disconnect.ico 再启用WIFI,WIFI的正确的图标也显示出来,这样任务栏上就 ...… 查看全部问答> |
|
项目需要,写了个可以修改IP,SUBMASK,GATEWAY的函数,是通过修改HIVE注册表实现的,修改的同时禁用了DHCP,这也是在通过改的HIVE注册表,但是问题是当我在程序里想把静态的地址该成DHCP的时候改不回来了,IP地址显示全为0了,而且动态的也没改回来,我是在E ...… 查看全部问答> |
|
当打开一个文件时其中的中文会显示为乱码,可以通过如下设置解决。在ModelSim主窗口中 Tools --> Preference --> Source Windows --> Files --> Custom Encoding for Read中选择gb2312编码。就可显示并输入中文了。… 查看全部问答> |
|
由于下午要写相关报告,可能没时间玩了,看了下eZ430-RF2500_User Guide_SLAU227.pdf,觉得引脚引出来做的挺好的,这个rf利用串口转usb进行数据的传输的,呵呵,先运行一个例程看看,得到如下结果,看了引脚定义,觉得挺好,基本资源都有了 ...… 查看全部问答> |
|
ISE13.3中,用modelsim 进行Post-Translate仿真,怎么查看模块中信号的波形? ISE13.3中,程序进行Behavioral仿真,结果正确,模块里面的信号波形可以看到。当进行时序仿真时,综合、翻译后的Post-Tranlate仿真中,我想查看模块里面的信号的波形,好查找出错的原因,但是只能看到testbench中信号的波形,而其余波形都是综合后 ...… 查看全部问答> |




