✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进
❤欢迎关注我的知乎:对error视而不见
代码获取、问题探讨及文章转载可私信。
☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。
获取更多嵌入式资料可点击链接进群领取,谢谢支持!
点击领取更多详细资料
STM32F103C8T6是意法半导体(ST)推出的一款基于ARM Cortex - M3内核的32位微控制器,属于STM32系列中的增强型产品。它凭借丰富的外设资源、高性能和较低的成本,在工业控制、消费电子、物联网等众多领域得到了广泛应用。了解该芯片的引脚定义及功能,对于开发基于STM32F103C8T6的项目至关重要。
STM32F103C8T6采用LQFP48封装,具有48个引脚。该芯片工作频率最高可达72MHz,内置64KB的闪存和20KB的SRAM,提供了丰富的外设接口,如GPIO、USART、SPI、I2C、ADC等。
GPIO(通用输入输出)引脚是芯片中最常用的引脚类型,STM32F103C8T6共有37个GPIO引脚,分为A、B、C、D四个端口(其中部分引脚复用了其他功能)。每个GPIO引脚可以通过软件配置为输入或输出模式,还可以设置上拉、下拉或浮空等输入模式。
例如,将PA0引脚配置为输出模式,并控制其输出高低电平的代码如下:
#include "stm32f1xx_hal.h"
GPIO_InitTypeDef GPIO_InitStruct = {
0};
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET); // PA0输出高电平
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET); // PA0输出低电平
HAL_Delay(1000);
}
}
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {
0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {
0};
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct