梅花香自123 发表于 2023-6-29 20:17

STM32-通行闸机1(HAL库)

关于stm32的学习,我们使用到的两个软件:MDK5和stm32cubeMX






硬件设计
[*]两个超声波模块
[*]一个红外遥控
[*]一个红外避障
[*]一个舵机(接CH340的5v引脚,单独供电)
[*]一个0.96寸OLED屏幕
[*]一个STM32F103C8T6
[*]一个CH340
[*]一个ST-Link v2






梅花香自123 发表于 2023-6-29 20:17

软件设计
使用了TIM1_CH1、TIM2_CH1、TIM3_CH1、TIM4_CH1
使用了USART1
模拟IIC

梅花香自123 发表于 2023-6-29 20:17

我们需要用stm32cubeMX进行项目相关配置。
1、 打开stm32cubeMX

梅花香自123 发表于 2023-6-29 20:17

新建工程
1、点击出现项目选项下拉列表

​ 2、创建新的项目





梅花香自123 发表于 2023-6-29 20:18

3、 这一步选择对应的单片机芯片,这里我们使用的是stm32f103c8的芯片

3、此处搜索想要的芯片型号
4、这里双击选择需要的芯片

梅花香自123 发表于 2023-6-29 20:18

4、 接下来进行系统时钟信号及调试的配置
5、打开与系统设置有关的下拉列表

6、点击选择时钟设置

7、高速时钟源设置

8、选择晶振



梅花香自123 发表于 2023-6-29 20:18

梅花香自123 发表于 2023-6-29 20:18

​ 9、点击打开调试相关面板

​ 10、debug及下载线路


11、选择串口通信线路

12、点击打开GPIO设置面板

梅花香自123 发表于 2023-6-29 20:19

5、 接下来 红外检测 进行GPIO口的选择与配置,这里我们选择GPIOB-Pin12
13、选择GPIOB_12引脚,点击进行设置

14、将引脚功能设置为输入模式

15、点击GPIOB-Pin12

16、选择引脚 上拉/下拉

17、选择上拉输入(因为使用的红外,正常是1,遮挡是0)

18、设置别名

梅花香自123 发表于 2023-6-29 20:19



梅花香自123 发表于 2023-6-29 20:19



梅花香自123 发表于 2023-6-29 20:19

梅花香自123 发表于 2023-6-29 20:19



梅花香自123 发表于 2023-6-29 20:19

6、 接下来 OLED显示 进行GPIO口的选择与配置,这里我们选择GPIOA-Pin1(OLED_SCL),GPIOA-Pin2(OLED_SDA)。
19、选择GPIOA_Pin1,GPIOA_Pin2引脚,点击进行设置

20、将引脚功能设置为输出模式

21、点击GPIOA_Pin1,GPIOA_Pin2,看图设置

22、设置别名GPIOA-Pin1(OLED_SCL),GPIOA-Pin2(OLED_SDA)

梅花香自123 发表于 2023-6-29 20:20

梅花香自123 发表于 2023-6-29 20:20

梅花香自123 发表于 2023-6-29 20:20

7、 接下来我们进行项目相关信息的设置,这里我们可以进行项目名称,项目保存地址,开发环境的选择
注意:选择生成路径时,不能有中文路径



点击生成 GENERATE CODE后会生成项目文件,生成后界面如下图。

在这里,我们可以直接点击OPEN PROJECT,也可以在项目创建目录下打开

接下来给大家介绍第二种从创建目录下打开的方法。

梅花香自123 发表于 2023-6-29 20:21

二、MDK5中的代码编写
我们首先需要了解文件夹结构


梅花香自123 发表于 2023-6-29 20:21

了解大致之后,我们需要添加自己编写的OLED.c,OLED.h,OLED_Font.h文件
首先在Core中的Inc文件夹中创建OLED.h,OLED_Font.h

梅花香自123 发表于 2023-6-29 20:21

页: [1] 2
查看完整版本: STM32-通行闸机1(HAL库)