前言
keil mdk自版本5以来,就主推使用包管理器来灵活开发应用。推出了Management Run-Time Environment。用户在新建工程的时候,可以根据项目需要,选择组件。简单的说就是,ARM推出这些标准,旨在用户快速开发的自己的应用程序,无需用户关心底层的逻辑实现。因此,我们尽可放心使用。
一、创建工程
新建工程时选择目标设备芯片,然后弹出的运行环境管理窗口,开始选择自己需要的组件。选择CMSIS Driver 的USART,在下拉列表中选择USART,可以看到后面介绍是基于设备PHY的。选择后sel复选框会变黄,validation output窗口会提示缺乏相应的文件,点击resolve,运行环境管理器就可以自动选中相应的依赖。最后选上启动文件。点击ok就创建了基本工程。
配置RTE_Device.h。High-speed Clock可根据具体设备的晶振来改写。另外需打开USART1
然后添加main.c文件。增加相应的函数
二、使用驱动API
ARM将驱动中断层转换为事件驱动,串口回调函数可以不作处理。
该程序在main函数中调用串口初始化,电源配置、串口配置等函数。只打开了发送功能。最后调用send()函数发送测试字符串。使用串口调试助手可以看到成功发送字符串。
三、使用printf函数
以前使用printf函数一般都是重定义fputc函数,现在keil提供完整的std输入输出文件。一般这个是用来配合其中间件Debug调试使用。但是我们也可以单独使用。在RTE_Device.h中选择Stdout
增加stdout_USART.c文件
配置std_USART.c文件。打开并进如configuration wizard窗口模式,选择串口设备和配置波特率
接下来就要删改main函数了,因为std_usart.c已经使用了USART1设备,并且已经初始化,所以我们只需在外部调用stdout_int()即可。
四、总结
由此可见,keil5在创建Cortex-M系列的芯片工程时,是非常方便的。基本上通用的外设的驱动都已经写好,我们只需调用使用即可。从而避免了一些自己写驱动出现的错误问题。但这个也不能太依赖于此。毕竟前提是,自己能够写驱动函数,熟悉芯片的外设工作机理。