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
相关推荐
Zevalin爱灰灰6 小时前
能源与电源管理电路——防倒灌电路
单片机·嵌入式硬件·电源管理
jianqiang.xue9 小时前
ESP-IDF保姆级入门02|Ubuntu24.04搭建EIM-GUI开发环境,打通Windows_Linux双平台统一开发
stm32·单片机·物联网
无垠的广袤9 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
嵌入式-老费10 小时前
esp32开发与应用(添加数据分区)
单片机·嵌入式硬件
嵌入式-老费11 小时前
esp32开发与应用(OTA升级)
嵌入式硬件
CYLAM202513 小时前
STC32G 单片机0.96“OLED 西历农历可调万年历 (1901-2100)
单片机·嵌入式硬件·stc32g·万年历·西历农历·0.96”oled 12864·4x4 矩阵键盘
Discipline~Hai14 小时前
ARM03-蜂鸣器和中断
c语言·arm开发·单片机·嵌入式硬件·嵌入式
KaifuZeng14 小时前
电源面试问题汇总一
单片机·嵌入式硬件·面试·电路
驱动探索者16 小时前
RISC-V PLIC 深度解析:从 Spec 到 Zephyr 驱动实现
单片机·嵌入式硬件·中断控制器
LCG元17 小时前
STM32 FreeRTOS 实战:任务调度 + 互斥锁 + 消息队列 + 串口命令解析器
stm32·单片机·嵌入式硬件