新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2020-2-6
- 在线时间
- 7 小时
|
1金钱
开发板F429。例程,跑马灯。
修改的地方:将跑马灯的输出IO口改为PH9
每隔3msPH9输出高电平2us
LED_Init()函数中,将IO口配置为PH9
问题:1,2us高电平时间不准,是2.3us,偏差太大。
2,2.3us的时间有时会变大,每隔7.4秒钟变为2.4us
main中代码如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
/************************************************
ALIENTEK 阿波罗STM32F429开发板 实验1
跑马灯实验-HAL库版本
/*下面主函数是使用HAL库函数实现控制IO口输出*/
int main(void)
{
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(360,25,2,8); //设置时钟,180Mhz
delay_init(180); //初始化延时函数
LED_Init(); //初始化LED
while(1)
{
// HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET); //LED0对应引脚PB1拉低,亮,等同于LED0(0)
HAL_GPIO_WritePin(GPIOH,GPIO_PIN_9,GPIO_PIN_SET); //LED1对应引脚PB0拉高,灭,等同于LED1(1)
delay_us(2);
// delay_ms(500); //延时500ms
// HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); //LED0对应引脚PB1拉高,灭,等同于LED0(1)
HAL_GPIO_WritePin(GPIOH,GPIO_PIN_9,GPIO_PIN_RESET); //LED1对应引脚PB0拉低,亮,等同于LED1(0)
delay_ms(3); //延时500ms
}
}
LED_Init()函数修改后代码如下:
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOH_CLK_ENABLE(); //开启GPIOB时钟
GPIO_Initure.Pin=GPIO_PIN_9; //PH9
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_FAST; //高速
HAL_GPIO_Init(GPIOH,&GPIO_Initure);
HAL_GPIO_WritePin(GPIOH,GPIO_PIN_9,GPIO_PIN_RESET); //PH9置1,默认初始化后灯灭
//HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); //PB1置1,默认初始化后灯灭
}
|
|