一、前言

在实验刚开始前,我都会去网上去搜索一些相关的资料以及有没有相关的教学视频可以跟着做。实验的原理基本是互通的,有变化的就是一些芯片以及设置、代码有一定需要我们自己去修改。

一些参考资料平台或者资源网站:

1、哔哩哔哩:

https://www.bilibili.com/video/BV1s84y1h77Q/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=2ce2bfa9df8730098e39d9b365679379

这个网址是哔哩哔哩对应keysking白色板子的,芯片是stm32f103c8t6,用这个板子的话,可以到这个网址观看视频学习。

keysking波特律动相关的文档网址如下,很好用,对于学习其他类型的芯片有借鉴和参考的意义。

https://docs.baud-dance.com/docs/stm32/example/

2、csdn

https://so.csdn.net/so/search?spm=1000.2115.3001.7498&q=stm32%E7%82%B9%E4%BA%AEled%E7%81%AF&t=&u=&utm_term=stm32%E7%82%B9%E4%BA%AEled%E7%81%AF&utm_medium=distribute.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%5Epv&depth_1-utm_source=distribute.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%5Epv&request_id=f9c006a9ce893e16a6547e562faa2ed9&opensearch_request_id=f9c006a9ce893e16a6547e562faa2ed9

在csdn上面也有一些大佬在上面分享自己的实验心得以及代码,可以学习借鉴。

3、GitHub

https://github.com/

这个网址里面的代码是开源的,聚集着全球程序员的代码,对于我这样的非专业的人员来说要用起来仍需学习。

4、Gitee

https://gitee.com/gaoyanzeng/drg_st_2_f103vet6

Gitee网址对应着板子的资料仓库,下面黑色的这个是我目前用到的单片机,从网上买的,也有哔哩哔哩的教学视频,但是外行的我来学,有的知识不是很理解,听不太明白,就需要多看看,多学习借鉴其他大佬,对比着学习,踩踩坑,卡住一段时间都是很正常的。

    二、点亮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这里指的是电压,中间一根水平的线连接着led,R,pb0(pb1、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模式以后像下面图片这样子。

    好,下面就需要我们生成代码了。ctrl+s保存配置,软件会自动生成代码。(或者点击菜单栏中黄色齿轮状的图标,也会自动生成代码。或者找到project里面的generate code)

    代码生成好了以后,右侧可以打开我们的主函数,main.c

    下面可以看到相关的代码内容,现在暂时看不懂没关系的,可以利用AI帮助我们解读。

    下面是我之前做的文档以及询问AI的截图

    5、确认代码无误以后,找到菜单栏上面的小锤子,进行编译,编译成功以后进行程序烧录,烧录是点击小虫子或者绿色的播放件,都没有问题的话,我们就会看到板载的led小灯被点亮,没有亮起来的话,按一下板子上的复位键或者检查代码是否有误。

    将单片机以及st-link通过usb接口接入电脑。

    准备烧录程序,找到绿色的像播放按键一样的。

    详细的操作视频我会更新在我的哔哩哔哩里面。

    另外有的同学有遇到了,st-link没有更新,可能烧录不进去;还有的是st-link的驱动程序没有安装好,也会存在点问题。

    st-link更新:升级 STLINK 固件 | 波特律动

    驱动安装:缺少 STLINK Server 组件 | 波特律动

    Logo

    北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

    更多推荐