概述
整个STMF407系列的学习汇总链接如下:
https://github.com/GreyZhang/g_stmf407
这一次尝试实现一个LED的闪烁,其实很多工程师会把这个叫做嵌入式版本的hello world。也有人说:“给我一颗LED我就可以调试所有的嵌入式系统”。这个功能虽简单,但是确实一个以小见大的功能,最常用的一个地方便是用这个现实一个二值信号的状态。而到了我们的调试阶段,我们会根据现象做出各种猜测,而猜测的对不对我们完全可以用LED做一个指示信息。假如再高端点,不同的闪烁带有不同的含义,这样的提示功能则更为强大。
我手头的电路板,PF9-21脚接了一个LED灯。在嵌入式的系统里,通常使用的驱动方式便是最简单的GPIO。
我选择的开发平STM32CubeIDE_1.0.2可以自动生成相应的驱动代码,功能的配置也是图形化的。这让我这个习惯了自己把代码从头写到尾的人来说简直是不能更赞!更让我惊喜的是,这个工具还自动给我增加了初始化代码。以下是对比参考:
看到这里就不难知道,为什么使用这个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 */
}
完整代码文件参考: https://github.com/GreyZhang/g_stmf407
编译链接成功后,烧写运行,可以看到LED灯的闪烁。
最后
以上就是知性冬天为你收集整理的139_STM32F407_LED闪烁实现的全部内容,希望文章能够帮你解决139_STM32F407_LED闪烁实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复