读STM32的程序,好像每次执行读写的时候,都可能有设置管脚动作:
#ifndef _TM1638_H_#define _TM1638_H_#include "Typedefine.h"#include "Port.h"/*******************************************************************************Macro definitions*******************************************************************************/#define TUBE_DISPLAY_NULL 26#define TUBE_DISPLAY_DECIMAL_PIONT_OFFSET 16#define TM1638_STBSet() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET)#define TM1638_STBReset() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET)#define TM1638_CLKSet() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET)#define TM1638_CLKReset() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET)#define TM1638_DIOSet() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET)#define TM1638_DIOReset() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET)#define TM1638_DIOModeOutput() Port_SetMode(GPIOB, GPIO_PIN_9, GPIO_MODE_OUTPUT_PP)#define TM1638_DIOModeInput() Port_SetMode(GPIOB, GPIO_PIN_9, GPIO_MODE_INPUT)#define TM1638_DIORead() HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)- #ifndef _TM1638_H_
- #define _TM1638_H_
-
- #include "Typedefine.h"
- #include "Port.h"
- /*******************************************************************************
- Macro definitions
- *******************************************************************************/
- #define TUBE_DISPLAY_NULL 26
- #define TUBE_DISPLAY_DECIMAL_PIONT_OFFSET 16
- #define TM1638_STBSet() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET)
- #define TM1638_STBReset() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET)
- #define TM1638_CLKSet() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET)
- #define TM1638_CLKReset() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET)
- #define TM1638_DIOSet() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET)
- #define TM1638_DIOReset() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET)
- #define TM1638_DIOModeOutput() Port_SetMode(GPIOB, GPIO_PIN_9, GPIO_MODE_OUTPUT_PP)
- #define TM1638_DIOModeInput() Port_SetMode(GPIOB, GPIO_PIN_9, GPIO_MODE_INPUT)
- #define TM1638_DIORead() HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)
复制代码 头文件说明了:
TM1638_DIOSet() 就是 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET)
我估计这句HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET)就是利用STM32库函数设置管脚状态
相当于我们的STB=0;
下面这句:
TM1638_CLKReset() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET)
大概就是把CLK复位
相当于我们的STB=1;
|