LED电路基本原理
因为io口冲突,所以加上了锁存器
这是573数据手册上面的逻辑图
这个理解成透传就可以了,整体是靠着LE来控制的,LE给高电平就可以了,OE是一直在开启状态的,LE变成1的话,就改变不了信号了 。总结一下,LE给高电平时信号可以传过来,LE给低电平的时候信号就过不来了
置于GPIO方面,输入才加上拉电阻和下拉电阻
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOF_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_8
|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
/*Configure GPIO pins : PC13 PC14 PC15 PC8
PC9 PC10 PC11 PC12 */
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_8
|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
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);
/*Configure GPIO pin : PD2 */
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
}
滴答定时器
滴答定时器在内核里
VAL是一个递减的定时器
内核级别的定时器 ,与延时函数有关,中断。
外部自带上拉电阻,按键按下去时变为低电平。根据电路结构,设置浮空输入模式,上下拉都不用
led和lcd引脚复用
其他
SRAM不需要刷新就可以保存数据,DRAM则需要不断地刷新数据,所以需要大量高速缓存时,最适合的就是DRAM,需要小量高速缓存时,最适合的就是SRAM