1.准备工件
1.1.Keil MDK开发环境
1.2.到官网上下载对应芯片(MM32SPIN05PF)的底层驱动程序MM32SPIN0x_q_Lib_Samples_V1.04_SC
1.3.在Keil MDK中安装对芯片的支持包,如下图所示:
2.新建工程
2.1.打开Keil软件,点击菜单栏Project->New uVision Project...在弹出的窗口中输入工程名,点击保存;
2.2.选择相对应的芯片:MM32SPIN05PF
2.3.直接点击OK,一个空的工程就建立完成了;
2.4.点击File Extensions, Books and Enveronment...按键,在弹出的Manage Project Items的Project Items的选项卡中添加文件夹、程序源文件到工程中;
2.5.添加完成后的目录结构和程序源文件如下图所示:
2.6.点击Options for Target...按键,在弹出的对话框中,对项目工程进行配置工作,如果程序中有用到printf函数,请勾选Use MicroLIB;
2.7.在C/C++选项卡中录入USE_STDPERIPH_DRIVER预编译宏,录入Include Paths的相关包含文件路径;
2.8.项目工程的文件包含路径添加如下图所示:
2.9.在Debug选项卡中,选择使用J-LINK / J-TRACE Cortex工具,然后点击Settings,如果有弹窗,选择ARM Cortex-M0即可;
2.10.在弹出的Cortex JLink/JTrace Target Driver Setup对话框中的Debug选项卡中,将调试接口设置为SW模式,即可在SW Device中检测到芯片了;
2.11.在Flash Download选项卡中,设置如下图所示;至此整个工程的创建和配置就完成了。
3.测试程序
根据原理图的绘制,编写LED闪烁的控制程序,代码如下所示:
<font size="3">#define __MAIN__#include "main.h" volatile uint32_t SysDelayCnt = 0; /** *LD1 ---> PA11 *LD2 ---> PA12 */ #define LD1_ON() GPIO_ResetBits(GPIOA, GPIO_Pin_11) #define LD1_OFF() GPIO_SetBits( GPIOA, GPIO_Pin_11) #define LD1_TOGGLE() (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_11))?(GPIO_ResetBits(GPIOA, GPIO_Pin_11)):(GPIO_SetBits(GPIOA, GPIO_Pin_11)) #define LD2_ON() GPIO_ResetBits(GPIOA, GPIO_Pin_12) #define LD2_OFF() GPIO_SetBits( GPIOA, GPIO_Pin_12) #define LD2_TOGGLE() (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_12))?(GPIO_ResetBits(GPIOA, GPIO_Pin_12)):(GPIO_SetBits(GPIOA, GPIO_Pin_12)) void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); LD1_OFF(); LD2_OFF(); } void InitSysTick(void) { if(SysTick_Config(SystemCoreClock / 1000)) { while (1); /* Capture error */ } /* Configure the SysTick handler priority */ NVIC_SetPriority(SysTick_IRQn, 0x0); } void delay(uint32_t cnt) { SysDelayCnt = cnt; while(SysDelayCnt != 0); } int main(void) { InitSysTick(); LED_Init(); while(1) { LD1_OFF(); LD2_OFF(); delay(500); //---500ms LD1_ON(); LD2_ON(); delay(500); //---500ms } } void SysTick_Handler(void) { if(SysDelayCnt) SysDelayCnt--; } </font>
复制代码<font size="3">#ifndef __MAIN_H__#define __MAIN_H__ #undef EXTERN #ifdef __MAIN_C__ #define EXTERN #else #define EXTERN extern #endif #include "HAL_conf.h" #endif </font>
复制代码4.相关资源
4.1.程序代码:
Project.rar
(2.12 MB, 下载次数: 5)
2019-10-19 17:06 上传
点击文件名下载附件
4.2.底层驱动:
MM32SPIN0x_q_Lib_Samples_V1.04_SC.zip
(1.52 MB, 下载次数: 0)
2019-10-19 17:06 上传
点击文件名下载附件
全部回复 2
评测文章
热帖
大家都在看的技术资料
举报
内容系网友发布,其中涉及到安全隐患的内容系网友个人行为,不代表面包板社区观点
关闭
站长推荐 /3
- 返回顶部
工具栏