stm32 74hc238流水灯

f103c6t6a_hex文件

c 复制代码
#include "main.h"![请添加图片描述](https://i-blog.csdnimg.cn/direct/8c0d44b121134cf08f5186df316ea07f.gif)

#include "stdlib.h"



void SystemClock_Config(void);
static void MX_GPIO_Init(void);
// 自定义abc引脚
#define A_PIN GPIO_PIN_1
#define B_PIN GPIO_PIN_2 
#define C_PIN GPIO_PIN_0 


//y0到y7输出
void segment(char c){
	if(c == 'a'){
		GPIOB->BRR = A_PIN | B_PIN | C_PIN; 
	}
	else if(c == 'b'){
		GPIOB->BSRR = A_PIN; 
		GPIOB->BRR =  B_PIN | C_PIN; 
}
		else if(c == 'c'){
		GPIOB->BSRR = B_PIN; 
		GPIOB->BRR =  A_PIN | C_PIN; 
}
			else if(c == 'd'){
		GPIOB->BSRR = A_PIN|B_PIN ; 
		GPIOB->BRR =   C_PIN; 
}
				else if(c == 'e'){
		GPIOB->BSRR = C_PIN; 
		GPIOB->BRR =  A_PIN | B_PIN; 
}
					else if(c == 'f'){
		GPIOB->BSRR = A_PIN| C_PIN; 
		GPIOB->BRR =  B_PIN ; 
}
					
		else if(c == 'g'){
		GPIOB->BSRR =B_PIN| C_PIN; 
		GPIOB->BRR = A_PIN ; 
}
		else if(c == 'p'){
		GPIOB->BSRR =A_PIN |B_PIN| C_PIN; 
}

}

char segment_list[]={'a','b','c','d','e','f','g','p'};
int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
	
while (1)
    {
     for(int i=0;i<=7;i++){
	segment(segment_list[i]);
		HAL_Delay(500);
	}
    } 
	
	
 

}




void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Initializes the CPU, AHB and APB busses clocks 
  */
  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();
  }
  /** Initializes the CPU, AHB and APB busses clocks 
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  {
    Error_Handler();
  }
}

/**
  * @brief GPIO Initialization Function
  * @param None
  * @retval None
  */
static void MX_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIOInitStruct = {0}; // 初始化 GPIO 结构体

    // 使能 GPIO 端口时钟
    __HAL_RCC_GPIOB_CLK_ENABLE();

    // 设置 GPIO 的通用配置
    GPIOInitStruct.Mode = GPIO_MODE_OUTPUT_PP;    // 设置为推挽输出模式
    GPIOInitStruct.Pull = GPIO_NOPULL;            // 不使用上拉或下拉
    GPIOInitStruct.Speed = GPIO_SPEED_FREQ_LOW;   // 设置为低速

    // 配置 GPIOB 端口的所有引脚
    GPIOInitStruct.Pin = GPIO_PIN_All; // 指定所有引脚
    HAL_GPIO_Init(GPIOB, &GPIOInitStruct); // 初始化配置


}

void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */

  /* USER CODE END Error_Handler_Debug */
}

#ifdef  USE_FULL_ASSERT
相关推荐
楼台的春风2 小时前
【MCU驱动开发概述】
c语言·驱动开发·单片机·嵌入式硬件·mcu·自动驾驶·嵌入式
Moonnnn.2 小时前
51单片机学习——动态数码管显示
笔记·嵌入式硬件·学习·51单片机
LS_learner3 小时前
小智机器人CMakeLists编译文件解析
嵌入式硬件·机器人
小鸡岛保安4 小时前
学习笔记-8MQTT-韦东山
stm32·物联网
1101 11014 小时前
STM32-温湿度上传OneNET项目
stm32·单片机·嵌入式硬件
余衫马5 小时前
ESP32-S3 实战指南:BOOT-KEY 按键驱动开发全解析
驱动开发·单片机·嵌入式硬件
文军的烹饪实验室8 小时前
处理器架构、单片机、芯片、光刻机之间的关系
单片机·嵌入式硬件·架构
Leiditech__9 小时前
人工智能时代电子机器人静电问题及电路设计防范措施
人工智能·嵌入式硬件·机器人·硬件工程
jmlinux9 小时前
STM32 HAL库USART串口DMA IDLE中断编程:避坑指南
stm32·单片机·嵌入式硬件