0
点赞
收藏
分享

微信扫一扫

139_STM32F407_LED闪烁实现

倪雅各 2022-03-12 阅读 51


         这一次尝试实现一个LED的闪烁,其实很多工程师会把这个叫做嵌入式版本的hello world。也有人说:“给我一颗LED我就可以调试所有的嵌入式系统”。这个功能虽简单,但是确实一个以小见大的功能,最常用的一个地方便是用这个现实一个二值信号的状态。而到了我们的调试阶段,我们会根据现象做出各种猜测,而猜测的对不对我们完全可以用LED做一个指示信息。假如再高端点,不同的闪烁带有不同的含义,这样的提示功能则更为强大。

         我手头的电路板,PF9-21脚接了一个LED灯。在嵌入式的系统里,通常使用的驱动方式便是最简单的GPIO。

         我选择的开发平STM32CubeIDE_1.0.2可以自动生成相应的驱动代码,功能的配置也是图形化的。这让我这个习惯了自己把代码从头写到尾的人来说简直是不能更赞!更让我惊喜的是,这个工具还自动给我增加了初始化代码。以下是对比参考:

139_STM32F407_LED闪烁实现_github

139_STM32F407_LED闪烁实现_github_02

139_STM32F407_LED闪烁实现_嵌入式_03

         看到这里就不难知道,为什么使用这个MCU平台的人开发产品速度会那么快。不过,这也给了我更大的信息,我之前自己从头撸到尾的方式都能够打败他们,切换到这样的平台我定然是有如神助吧!

         我想实现的一个简单的LED闪烁看起来更容易了,找了一下有我可以直接用的现成软件接口。LED闪烁实现的相关核心代码如下:

/* Private variables ---------------------------------------------------------*/
static uint32_t counter = 0U;

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */
SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */

/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
counter++;
if (counter % 50000 == 0)
{
HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_9);
}
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}

    ​

         编译链接成功后,烧写运行,可以看到LED灯的闪烁。


举报

相关推荐

0 条评论