TA的每日心情 | 奋斗 2024-11-12 19:35 |
---|
签到天数: 12 天 连续签到: 1 天 [LV.3]偶尔看看II
|
板子上的LED是贴反的!!!
板子上的LED是贴反的!!!
板子上的LED是贴反的!!!
重要的事情讲3遍
点灯第一件事就是先分析原理图
LED引脚接在了PB9引脚上 因此我们需要操作PB9引脚翻转
首先看官方给的例程
- int main(void)
- {
- PLATFORM_Init();
- GPIO_LED_Toggle_Sample();
- while (1)
- {
- }
- }
复制代码 PLATFORM_Init();函数
- void PLATFORM_Init(void)
- {
- PLATFORM_InitDelay();
- PLATFORM_InitConsole(115200);
- PLATFORM_InitLED();
- }
复制代码 其中比较重要的就是
PLATFORM_InitLED();这句话,我们进入这个函数中
- void PLATFORM_InitLED(void)
- {
- GPIO_InitTypeDef GPIO_InitStruct;
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
- GPIO_StructInit(&GPIO_InitStruct);
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_1;
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(GPIOB, &GPIO_InitStruct);
- GPIO_StructInit(&GPIO_InitStruct);
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_6;
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(GPIOA, &GPIO_InitStruct);
- PLATFORM_LED_Enable(LED1, ENABLE);
- PLATFORM_LED_Enable(LED2, ENABLE);
- PLATFORM_LED_Enable(LED3, ENABLE);
- PLATFORM_LED_Enable(LED4, ENABLE);
- }
复制代码 首先修改引脚定义,将其重定义至PB9引脚
初始化完之后写入寄存器中
然后使能引脚
记得修改
GPIO_IO_Toggle
PLATFORM_LED_Enable
函数中的引脚,由于官方没有使用宏定义来规范引脚
导致后期移植十分繁琐
这种写法效率略微偏低
后面我会上传一份重写过的LED——Toggle代码
初始化完毕之后进去范例函数中
- void GPIO_LED_Toggle_Sample(void)
- {
- printf("\r\nTest %s", __FUNCTION__);
- GPIO_Configure();
- while (1)
- {
- GPIO_IO_Toggle(GPIOB, GPIO_Pin_1);
- GPIO_IO_Toggle(GPIOB, GPIO_Pin_9);
- GPIO_IO_Toggle(GPIOA, GPIO_Pin_7);
- GPIO_IO_Toggle(GPIOA, GPIO_Pin_6);
- PLATFORM_DelayMS(100);
- }
- }
复制代码
板子上的LED就可以欢快的亮起来了
|
|