STM32F103C8T6单片机
目录
1. [什么是单片机](#什么是单片机)
2. [单片机的结构](#单片机的结构)
3. [单片机开发环境搭建](#单片机开发环境搭建)
- [安装IDE](#安装ide)
- [配置开发环境](#配置开发环境)
4. [编写第一个程序](#编写第一个程序)
5. [硬件连接](#硬件连接)
6. [调试与烧录](#调试与烧录)
7. [总结](#总结)
什么是单片机
单片机(Microcontroller Unit, MCU)是将中央处理器(CPU)、存储器(RAM/ROM)、输入输出接口(I/O)等集成在一个芯片上的微型计算机系统。
单片机的结构
- 中央处理器 (CPU)
- 存储器 (Memory)
- 输入输出接口 (I/O Ports)
- 定时器/计数器 (Timers/Counters)
- 串行通信接口 (Serial Communication Interface)
单片机开发环境搭建
安装IDE
1. 访问[Keil官网](http://www.keil.com/)下载Keil MDK。
2. 安装Keil MDK。
3. 获取并安装STM32系列单片机的支持包。
配置开发环境
1. 打开Keil MDK,创建一个新的项目。
2. 在Project Settings中添加对应的设备。
3. 配置生成目标为.hex文件。
编写第一个程序
下面是一个简单的LED闪烁程序示例,使用STM32F103C8T6单片机。
```c
#include "stm32f1xx.h"
void SystemClock_Config(void);
void Error_Handler(void);
int main(void)
{
HAL_Init(); // 初始化HAL库
SystemClock_Config(); // 系统时钟初始化
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* Configure LED pin as output */
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* Infinite loop */
while (1)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); // 切换LED状态
HAL_Delay(500); // 延迟500ms
}
}
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/ Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 8;
RCC_OscInitStruct.PLL.PLLN = 90;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}
/ Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockOutput = RCC_CLOCKOUTPUT_NONE;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
{
Error_Handler();
}
}
void Error_Handler(void)
{
__disable_irq();
while (1)
{
}
}
```
硬件连接
确保LED正极连接到PC13,负极通过限流电阻接地。
调试与烧录
1. 使用ST-Link或类似工具连接电脑与单片机板。
2. 在Keil MDK中选择Debug->Start进行调试。
3. 使用工具将.hex文件烧录到单片机中。
原文地址:https://blog.csdn.net/qq_40698086/article/details/143484688
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!