嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验

一、STM32CubeMx实现数码管

1、双击打开STM32CubeMX。
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第1张图片

2、点击File选项,在File列表下选择New Project选项新建工程。

3、在图中所示位置的方框中输入我们使用的芯片型号来搜索芯片
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第2张图片

4、与我们的搜索相关的芯片型号会在这里呈现,我们只需要选择我们需要的即可,这里我们双击第一个STM32F103C8T6即可完成芯片选型。
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第3张图片

5、完成芯片选型之后我们会来到这个界面:
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第4张图片

6、下一步我们先来配置程序下载方式:选中System Core清单下的SYS选项。在右侧弹出的窗口中有Debug选项,单击Debug选项右侧的小箭头,在下拉列表中选择Serial Wire选项。这一步是配置使用ST-LINK下载程序。
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第5张图片

7、下一步是开启外部时钟。单击左侧列表中的RCC选项,右侧窗口会出现默认为Disable的HSE和LSE两个选项,即外部高速时钟和外部低速时钟。这里我们都选择第三项Crystal/Ceramic Resonator,意思是使用板载的外部晶振作为时钟源。
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第6张图片

8、由于我们需要使用1位数码管来显示,所以需要给数码管配置GPIO。在这里我们给数码管的8个引脚全部配置为输出模式。单击需要配置的引脚,在弹出的列表中选择GPIO_Output。配置成功后引脚会变成绿色。
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第7张图片
9.配置工共引脚
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第8张图片
10.将7个引脚设置为共阳极,并一次改名为a-g
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第9张图片
11.将公共引脚改为H1和H2
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第10张图片
12.设置定时器
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第11张图片
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第12张图片
13.接下来我们需要配置时钟。点击上方的Clock Configuration选项,来到时钟树的界面。
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第13张图片
14.时钟配置完成后点击上方的Project Manager选项,对工程进行设置。
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第14张图片
配置完这个页面后我们选择左侧的Code Generator选项
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第15张图片
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第16张图片
15.工程已配置完成,单击右上角的GENERATE CODE选项生成代码。
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第17张图片
然后会弹出如下界面
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第18张图片
我们选择中间的选项直接打开工程
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第19张图片
如图所示:左边是已经生成好的相关文件,我们只需要在其中添加我们的代码
16.因为我们要显示两位数所以设置两个参数,i代码数码管显示0-9,bit代表显示第一位亮还是第二位亮
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第20张图片
17.显示两位数字(0-99)
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第21张图片
18.主函数使用for循环显示0-99
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第22张图片
18.设置定时器,先注释掉for循环显示0-99
选中代码,点击绿色斜线
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第23张图片
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第24张图片
19.找到MX_TIM1_Init();右键
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第25张图片
可以看到我们刚刚的配置
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第26张图片
配置定时器
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第27张图片
20.定义m变量
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第28张图片

21.设置时间中断回调函数
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第29张图片
22.在while循环中调用显示函数
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第30张图片
23.保存并编译
嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验_第31张图片
编译成功!!!!

你可能感兴趣的:(嵌入式开发,单片机,stm32,嵌入式硬件)