第一个例程
参考
STM32固件库代码V3.5版\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\GPIO\IOToggle


LED点亮
蓝桥杯板子LED和LCD的引脚共用,所以为了解决冲突加入了一个锁存器,所以只有LE引脚即D2拉高才能更改LED寄存器的值。所以需要操作时候要 先拉高D2再操作最后拉低D2锁存。

LED闪烁不受控制
这是由于LED引脚和LCD共用引起的,LCD在操作过程中会引起LED寄存器值更改,一种简单的方法是在写函数开头用变量保存LED寄存器的数值,执行完后再恢复。


三个函数添加这三句代码即可。
LED实现流水灯效果
写一个移位函数,传入参数为移位的位数。在while内调用移位位数加减和延时即可实现。这里演示延时直接用的delay函数,实际并不建议这样。可以考虑用定时器进行延时。
#include "stm32f10x.h"
#include "lcd.h"
#include "led.h"
void delay_ms(u32 nTime);
static __INLINE uint32_t SysTick_Config1(uint32_t ticks);
int main(void)
{
u8 i=1;
SysTick_Config1(SystemCoreClock/1000);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
STM3210B_LCD_Init();
LED_Init();
LCD_Clear(Blue);
LCD_SetBackColor(Blue);
LCD_SetTextColor(White)

本文介绍如何在STM32上实现LED流水灯效果,包括初始化设置、使用定时器控制LED闪烁及解决LED与LCD引脚冲突的问题。
最低0.47元/天 解锁文章
2465

被折叠的 条评论
为什么被折叠?



