土木本科生的STM32探索之旅:点亮stm32f103vet6板载的一个led小灯 一、前言在实验刚开始前我都会去网上去搜索一些相关的资料以及有没有相关的教学视频可以跟着做。实验的原理基本是互通的有变化的就是一些芯片以及设置、代码有一定需要我们自己去修改。一些参考资料平台或者资源网站1、哔哩哔哩https://www.bilibili.com/video/BV1s84y1h77Q/?spm_id_from333.1007.top_right_bar_window_history.content.clickvd_source2ce2bfa9df8730098e39d9b365679379这个网址是哔哩哔哩对应keysking白色板子的芯片是stm32f103c8t6用这个板子的话可以到这个网址观看视频学习。keysking波特律动相关的文档网址如下很好用对于学习其他类型的芯片有借鉴和参考的意义。https://docs.baud-dance.com/docs/stm32/example/2、csdnhttps://so.csdn.net/so/search?spm1000.2115.3001.7498qstm32%E7%82%B9%E4%BA%AEled%E7%81%AFtuutm_termstm32%E7%82%B9%E4%BA%AEled%E7%81%AFutm_mediumdistribute.pc_toolbar_associateword.none-task-associate_word-opensearch_query-2-stm32%3Cem%3E%E7%82%B9%E4%BA%AE%3C%2Fem%3Eled%E7%81%AF-null-null.179%5Ev5%5Epvdepth_1-utm_sourcedistribute.pc_toolbar_associateword.none-task-associate_word-opensearch_query-2-stm32%3Cem%3E%E7%82%B9%E4%BA%AE%3C%2Fem%3Eled%E7%81%AF-null-null.179%5Ev5%5Epvrequest_idf9c006a9ce893e16a6547e562faa2ed9opensearch_request_idf9c006a9ce893e16a6547e562faa2ed9在csdn上面也有一些大佬在上面分享自己的实验心得以及代码可以学习借鉴。3、GitHubhttps://github.com/这个网址里面的代码是开源的聚集着全球程序员的代码对于我这样的非专业的人员来说要用起来仍需学习。4、Giteehttps://gitee.com/gaoyanzeng/drg_st_2_f103vet6Gitee网址对应着板子的资料仓库下面黑色的这个是我目前用到的单片机从网上买的也有哔哩哔哩的教学视频但是外行的我来学有的知识不是很理解听不太明白就需要多看看多学习借鉴其他大佬对比着学习踩踩坑卡住一段时间都是很正常的。二、点亮stm32f103vet6板载的一个led小灯1、拿到板子的第一手都是去问淘宝商家或者网络上去搜索其资料技术手册。我在淘宝搜索到的情况打开其对应的代码仓库可以看到它的一些资料网址如下https://gitee.com/gaoyanzeng/drg_st_2_f103vet6今天的第一个实验点亮stm32f103vet6板载的一个led小灯需要我们去下载板子的原理图。找到我们需要点亮的led小灯位置小灯的led原理图。2、查看开发板的原理图确定三个led小灯对应的引脚分别是pb0、pb1和pb5这个三个引脚大家可以先记住一下后续设置的时候就需要用到。那我们没有学过电路图的同学就看不懂这个是啥子一些自学能力强的同学会去网址找资料去补充学习这块知识而初高中有的学生有接触过科学物理浙江的高考学生也有一门技术课程多多少的有接触到像原理图中的红色贴片led也就是发光二极管把它叫做led小灯二极管具有单项导电性直白的说电只能一头进来一头出去不能一头既能进又能出。原理图的图片里面还有一个R这里是一个电阻起到保护的作用欧姆定律有涉及到电压、电阻和电流三者的关系想要去了解的同学可以去咨询一下AI或者去哔哩哔哩学习我这里就暂时不解释了。3v3这里指的是电压中间一根水平的线连接着ledRpb0pb1、pb5。那么是否一条线连上去就代表着导通了不不是的。大家可以类比水流水流都是从高处流向低处电也是这样从高的流向低的。什么是高什么是低怎么流简单点记电路里面1以及大于1就是高正极0就是低负的正的流向负的高的流向低的我们只拿其中的一个led来举例子拿led0来说如果pb0是高电位的话3v3也是高那么电就没有经过发光二极管并流入pb0如果pb0是低电位3v3一直是高那么就形成了电位差高的流向低的电流经过发光二极管流向了pb0。至此我们大致整明白了发光二极管led灯点亮的原理下面我们就需要打开cubeide软件进行相应的操作了。3、打开cubeide软件选择好stm32f103vet6芯片新建工程项目为led_light_project。未登录账号的同学需要去st官方注册账号并登录。红色框框这里搜索对应的芯片型号用的keysking白色板子是stm32f103c8t6我这里用的是f103vet6。倘若用的是别的型号的芯片改到自己对应的芯片就行当然原理图那里也是需要根据实际的情况来定的。这里有个星星为了今后使用方便可以点击星星收藏起来。输入项目名称一般建议是英文或者数字中文好像是不行的。新建好了以后的界面长这个样子尤其是中间这里的图形有我们的芯片情况以及周围一圈东西。刚刚我们从原理图中找到的是什么来着哦pb0、pb1和pb5。那图形这里这么多的怎么好找右下角搜索pb0本次的实验将会以点亮pb0一个led0灯为例pb1和pb5的暂时就不点亮了点击了pb0以后出现了很多东西要怎么选这些都是什么东西选错了怎么取消adc这里是数据的采集tmi是计时器gpio这里有好多有intput输入、output输出、analog模拟、exti外部中断那我要让灯亮起来要怎么做还是我们来看原理图pb0是低电位就导通了那是不是我们让pb0输出一个0就通了。好那现在选择gpio_output选完以后会变绿色的那选错了怎么取消取消的话选择reset这里回到刚刚选择好了pb0这里需要查看gpio设置。gpio设置这里是默认的gpio output level 为低low也就是0。好我们不做任何的修改。4、由于f103系列的板子会存在一定的烧录问题所以每次新建项目以后都需要更改sys的debug为serial wire。若是不更改会怎么样为什么会这样那锁了芯片要怎么办会锁芯片详细的原因以及处理过程我会另外写一篇文章和拍摄擦拭芯片的视频。修改了debug模式以后像下面图片这样子。好下面就需要我们生成代码了。ctrls保存配置软件会自动生成代码。或者点击菜单栏中黄色齿轮状的图标也会自动生成代码。或者找到project里面的generate code代码生成好了以后右侧可以打开我们的主函数main.c下面可以看到相关的代码内容现在暂时看不懂没关系的可以利用AI帮助我们解读。下面是我之前做的文档以及询问AI的截图5、确认代码无误以后找到菜单栏上面的小锤子进行编译编译成功以后进行程序烧录烧录是点击小虫子或者绿色的播放件都没有问题的话我们就会看到板载的led小灯被点亮没有亮起来的话按一下板子上的复位键或者检查代码是否有误。将单片机以及st-link通过usb接口接入电脑。准备烧录程序找到绿色的像播放按键一样的。详细的操作视频我会更新在我的哔哩哔哩里面。另外有的同学有遇到了st-link没有更新可能烧录不进去还有的是st-link的驱动程序没有安装好也会存在点问题。st-link更新升级 STLINK 固件 | 波特律动驱动安装缺少 STLINK Server 组件 | 波特律动