【STM32-HAL库】新建工程并设置编译、下载(以STM32F103C8T6为例)

本文详细介绍了如何使用STM32F103C8T6开发板,通过CubeMX进行芯片选择、调试设置、时钟配置、GPIO操作,以及如何在Keil5环境下编译和下载程序的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 本教程以STM32F103C8T6为例,如果选择其他芯片,则步骤都一样。

1、打开cubeMX

点击“ACCESS TO MCU SELECTOR”

如果自动下载资源,则等待下载完,也可以不用下载。

2、选择芯片

搜索所使用的芯片型号,在右侧双击芯片,本教程以STM32F103C8T6为例

3、开启调试

在“System Core”中点击“SYS”,“Debug”选项中选择“Serial Wire”

4、设置时钟

在RC中的“HSE”和“LSE”设置为“Crystal/Ceramic Resonator”

5、设置GPIO

鼠标左键单击“PC13”,选择“GPIO_Output”,设置该引脚为输出模式。

点击左面GPIO,再点击PC13,设置该引脚输出相关参数。

6、设置时钟树

点击顶部“Clock Configuration”,在“Input frequency”处输入“8”,依次选择“HSE”、“PLLCLK”,并在“HCLK”输入“72”,并点击回车,系统会自动配置其他参数。(若选择其他芯片,HCLK处则填下面提示的最大值)

7、配置工程

①project配置:依次输入工程名字、选择工程路径;

选择IDE为“MDK-ARM”、版本为“V5”

②“Code Generator”配置:

8、打开keil5工程

生成工程文件之后点击“open project”,就会自动打开该工程。

9、设置keil5

点击魔术棒,设置编译器版本。

点击“debug”,选择“ST-Link Debugger”,点击右面的“Settings”

进入stlink设置之后,勾选“Reset and Run”

最后点击“确定”,点击“OK”,即可正常编译并下载程序。

10、编译、下载

①所示为全局编译

②为编译信息

③为下载

当编译信息中无Error时,即可点击③所示图标,把编译好的程序下载到开发板中。

资源下载链接为: https://pan.quark.cn/s/502b0f9d0e26 STM32F103C8T6是意法半导体公司推出的一款基于ARM Cortex-M3内核的微控制器,常用于嵌入式系统开发。该代码包通过HAL实现了三个重要功能:LED灯控制、串口通信以及串口通信结合DMA传输。 在“LED(OK)”项目中,开发者利用HAL对GPIO接口进行编程,实现了LED灯的点亮和熄灭。STM32F103C8T6的每个GPIO端口均可配置为输出模式,通过操作数据寄存器的相应位来控制LED状态。HAL提供了封装好的API,HAL_GPIO_Init()用于初始化GPIO端口,HAL_GPIO_WritePin()用于向GPIO端口写入数据,从而实现LED灯的开关控制。 接下来是串口通信功能。串行通信是嵌入式系统中常见的数据传输方式,用于设备间通信。在“USART(OK)”项目中,开发人员使用HAL的串口驱动,初始化了USART接口,配置了波特率、校验位、停止位等参数。HAL_UART_Transmit()函数用于发送数据,HAL_UART_Receive()用于接收数据。其中,“不定长发送字符”指的是发送数据的长度可以根据需要动态调整,直到遇到特定结束字符为止,这在ASCII协议等许多通信协议中十分常见。 此外,代码包还展示了串口通信结合DMA的方式。在“USART+DMA(OK)”项目中,利用了STM32的DMA功能,可减轻CPU负担,提升串口通信效率。在串口通信中,CPU将数据队列交给DMA后,可继续执行其他任务,DMA则自动完成数据的发送或接收。HAL_UART_Transmit_DMA()HAL_UART_Receive_DMA()函数用于启动串口DMA传输。结合空闲中断,可在串口空闲时触发中断处理程序,检测数据传输是否完成,实现非阻塞式通信,提
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值