潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led

本实验使用MDK自带的RTX实时系统。真正的从0创建工程,不从其它现有工程拷贝代码。

MDK版本:5.28a

STM32CubeMX版本:5.3.0

STLINK更新固件问题:http://www.openedv.com/forum.php?mod=viewthread&tid=279161&extra

MDK安装完成后,会自动弹出Pack安装界面,在搜索框中输入STM32L475VET,然后在左侧设备列表里面选中STM32L475VETx,然后在右侧Pack列表中点击相应的Install按钮进行安装。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第1张图片

如果下载太慢,可以点击左侧的链接,到官网下载,下载下来后,直接双击进行安装。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第2张图片

打开Keil uVision5,开始创建工程。点击菜单Project->New uVision Project...,然后选择项目保存路径。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第3张图片

随后,MDK自动弹出设备选择界面,在搜索框中输入STM32L475VET,然后选中STM32L475VETx,然后单击OK按钮。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第4张图片

随后MDK自动弹出运行时环境管理界面。展开CMSIS,展开里面的RTOS2,选中Keil RTX5,单击后边的描述可以查看相关Pack的详细使用文档。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第5张图片

展开Device,展开里面的STM32Cube HAL,选中GPIO

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第6张图片

现在可以看到界面有黄色的警告,提示我们选择的Pack依赖其它Pack,点击左下角的Resolve按钮,自动选中依赖项。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第7张图片

最终效果如图

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第8张图片

单击OK按钮,MDK会自动弹出界面,提示是否运行STM32CubeMX

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第9张图片

点击Start STM32CubeMX按钮启动STM32CubeMX。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第10张图片

LED_R 接 PE7, LED_G 接 PE8, LED_B 接 PE9

本次实验只使用PE7,在STM32CubeMX中的Pinout view视图中将PE7配置为输出模式

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第11张图片

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第12张图片

展开左侧的System Core,点击GPIO,出现GPIO配置界面,将PE7配置为上拉模式

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第13张图片

然后点击右上角的GENERATE CODE按钮生成代码

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第14张图片

代码生成完成后,点击Close按钮。然后回到MDK界面,MDK界面自动弹出导入代码修改界面,点击是按钮。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第15张图片

点击编译按钮尝试编译

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第16张图片

编译失败,提示有3个中断函数重定义了。这3个中断函数被RTX系统定义了。回到STM32CubeMX。

如果已经关闭了,可以通过MDK的运行时环境管理界面重新打开

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第17张图片

 

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第18张图片

在STM32CubeMX中,点击左侧的System Core中的NVIC,然后在中断配置界面中切换到Code generation选项卡,关闭其中的3个中断代码生成功能。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第19张图片

然后点击右上角的GENERATE CODE按钮,代码生成完成后点击Close按钮。

回到MDk界面,导入修改。然后再次编译,这次已经编译成功了。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第20张图片

 

开始写代码。

将Source Group1更改为Application,并添加C文件。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第21张图片

app.c中的代码:

#include 
#include 

static uint32_t HZ;

static void app_main(void *arg)
{
	while (1) {
		/* Toggle PE7 */
		HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_7);
		/* Sleep 0.5 second */
		osDelay(HZ * 0.5);
	}
}

void app_init()
{
	/* Get the RTOS kernel tick frequency */
	HZ = osKernelGetTickFreq();

	/* Initialize the RTOS Kernel */
	osKernelInitialize();
	
	/* Create a thread and add it to Active Threads */
	osThreadNew(app_main, NULL, NULL);
	
	/* Start the RTOS Kernel scheduler */
	osKernelStart();
}

打开STM32CubeMX:Common Sources中的main.c文件。

在USER CODE Includes中添加函数声明

 

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第22张图片

在USER CODE 2中初始化app

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第23张图片

打开Target选项配置界面

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第24张图片

将Debug配置为ST-Link Debuger

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第25张图片

然后对ST-Link进行设置

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第26张图片

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第27张图片

设置Flash Download,下载完成后执行复位并运行。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第28张图片

最后,执行编译,并下载代码到开发板运行。

潘多拉STM32L475学习 (基于MDK自带Pack) (一):闪烁Led_第29张图片

你可能感兴趣的:(潘多拉STM32L475学习,(基于MDK自带Pack))