Keil MDK的CMSIS USART Driver使用

2023-11-01

前言:本文适用于使用过Keil MDK软件且有一定的单片机开发基础的人员

软件版本:Keil MDK v5.24

硬件开发板:STM32F429I-Discovery

预备知识:

Keil RTX线程使用

Keil MDK v5新增了pack Installer、Manage Run-Time Environment等功能使我们可以快速创建基于芯片pack包的工程。而基于ARM CMSIS标准的接口使程序的移植性大提高。此帖就演示如何快速创建基于ARM CMSIS 标准的串口驱动。

Keil MDK最新版软件下载地址:http://tools.emdoor.com/products/arm/keil/1196.html

或者:https://www.keil.com/demo/eval/arm.htm#/DOWNLOAD

pack包安装与下载

相关的芯片pack包也可以在keil官网(https://www.keil.com/dd2/pack/)下载

新建工程并配置相关外设

  • 创建工程

利用Manage Run-Time Environment配置工程

  • 添加Keil RTX实时操作系统

  • 添加CMSIS USART驱动

具体需要添加的

CMSIS->CORE

CMSIS Driver-USART(API)->USART

CMSIS->RTOS

Device->Startup

Board Support->LED(API)

Device->STM32Cube Framework(API)->Classic

  • 然后点击窗口中左下角Resolve按钮,让IDE自动帮我们选择其他需要的项目

  • 配置系统时钟频率为168MHZ,选择左侧工程窗口的CMSIS->RTX_Conf_CM.c打开RTE_Device文件,选择Configuration Wizard模式,将RTOS Kernel Timer input clock frequence频率设置为168000000(168MHZ)

  • 配置USART1的硬件接口:选择左侧工程窗口的Device->RTE_Device.h打开文件。选择Configuration Wizard模式,使用USART1并配置USART1_RX引脚为PA10,USART1_TX引脚为PA9

 

  • 通过查询窗口找到外部时钟宏定义并更改晶振宏定义数值为8000000(8MHZ)

创建串口线程编写代码

  • 编译后将hex文件通过ST-Link

效果

打开串口工具,这里使用SecureCRT工具。查看串口输出

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Keil MDK的CMSIS USART Driver使用 的相关文章

  • 在 MCU 内部 FLASH 中从一个固件跳转到另一个固件

    我目前正在开发针对 STM32F030C8 的引导加载程序固件应用程序 我在分散文件中指定引导加载程序应用程序将占用主内存位置 0x08000000 到 0x08002FFF 扇区 0 到扇区 2 我还编写了一个主固件应用程序 存储在0x0
  • 如何让printf在STM32F103上工作?

    我是 STM32F103 世界的新手 我有一个STM32F103的演示代码 我正在使用arm none eabi来编译它 我尝试了在谷歌上可以找到的内容 但到目前为止没有任何效果 我已经花了三天时间来解决这个问题 任何人都可以给我一个运行良
  • 优化 ARM Cortex M3 代码

    我有一个 C 函数 它尝试将帧缓冲区复制到 FSMC RAM 这些函数将游戏循环的帧速率降低至 10FPS 我想知道如何分析反汇编的函数 我应该计算每个指令周期吗 我想知道CPU把时间花在哪里 在哪个部分 我确信该算法也是一个问题 因为它的
  • STM32F103

    提示 来源正点原子 参考STM32F103 战舰开发指南V1 3PDF资料 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 开发环境硬件普中科技 接线图在g
  • 物联网网关

    物联网网关是 连接物联网设备和互联网的重要桥梁 它负责将物联网设备采集到的数据进行处理 存储和转发 使其能够与云端或其它设备进行通信 物联网网关的作用是实现物联网设备与云端的无缝连接和数据交互 物联网网关功能 数据采集 物联网网关可以从物联
  • STM32 GPIO工作原理详解

    STM32 GPIO介绍 1 STM32引脚说明 GPIO是通用输入 输出端口的简称 是STM32可控制的引脚 GPIO的引脚与外部硬件设备连接 可实现与外部通讯 控制外部硬件或者采集外部硬件数据的功能 以STM32F103ZET6芯片为例
  • [屏驱相关]【SWM166-SPI-Y1.28C1测评】+ 有点惊艳的开箱

    耳闻华芯微特许久了 看到论坛得评测活动赶紧上了末班车 毕竟对有屏幕得板子也是很喜欢得 京东快递小哥客客气气 微笑着把快递给了我 好评 直接拆了包 在此之前没看过视频号 所以这个圆盘盘得模具还是有点惊喜的 正面照如下 开机有灯光秀 还有动画
  • SHT10温湿度传感器——STM32驱动

    实验效果 硬件外观 接线 3 3V供电 IIC通讯 代码获取 查看下方 END
  • 硬件基础-电容

    电容 本质 电容两端电压不能激变 所以可以起到稳定电压作用 充放电 电容量的大小 想使电容容量大 使用介电常数高的介质 增大极板间的面积 减小极板间的距离 品牌 国外 村田 muRata 松下 PANASONIC 三星 SAMSUNG 太诱
  • 在 Atollic TrueStudio、STM32CubeMX 中导入 C 库

    我目前正在开发 STM32F767ZI Nucleo 板和一个小安全芯片 microchip atecc508a 通过 i2c 连接进行连接 该芯片有一个可用的库加密验证库 https github com MicrochipTech cr
  • 最终启动顺序错误 - STM32L476 的 Eclipse System Workbench 调试

    我正在尝试调试和运行 STM32L476 的简单汇编代码 我已经设置了 Eclipse Oxygen 在 Eclipse 中安装了最新版本的 System Workbench 插件并安装了 ST Link 驱动程序 IDE 成功构建了程序
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • 通过JTAG恢复STM32 MCU磨掉的标记

    我有一块可能带有 STM32 MCU 的板 我想为该板制作定制固件 因为库存板有很多问题 不幸的是 电路板制造商很友善地磨掉了所有标记 有没有办法通过 jtag 获取设备 系列 ID 并将其交叉引用到型号 我能找到的一切都是关于获取芯片的唯
  • STM32 上的位置无关代码 - 指针

    我已成功在 STM32 上构建并运行位置无关的代码 向量表和 GOT 已修补 一切正常 但我对这样的代码有问题 double myAdd double x return x 0 1 double ptrmyAdd double myAdd
  • STM32F0、ST-link v2、OpenOCD 0.9.0:打开失败

    我在用着发射台 http www ti com ww en launchpad about htmlgcc arm none eabi 4 9 2015q2 为 STM32F0 进行编译 现在我想使用该集合中的 arm none eabi
  • 哪些变量类型/大小在 STM32 微控制器上是原子的?

    以下是 STM32 微控制器上的数据类型 http www keil com support man docs armcc armcc chr1359125009502 htm http www keil com support man d
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE

随机推荐

  • 机器人编程和编程有什么区别

    机器人编程和编程有什么区别 很多的家长在培养孩子的学习方面也可以说是相当的耐心的 他们会给孩子选择一些能够有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于机器人编程和编程有什么区别并不是很清楚 今天我
  • 网络安全-CDN绕过寻找真实IP

    网络安全 CDN绕过寻找真实IP CDN就是CDN加速 就是根据你的目标让你访问的更快 CDN CDN 即内容分发网络 主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题 说得简单点 就是一组在不同运营商之间的对接节点上的高速缓
  • bfs 模版

    player 队列q marked数组 dist数组 前驱pre数组 这里说数组指的是顶点是按0 V 1编好号的情况 如果没编号 就用一般的symbol table比如map unordered map 另外前驱一般情况是多个 即一般应该定
  • eclipse中在lib目录下添加或删除jar包,Referenced Libraries无法同步问题

    eclipse版本 myeclipse 9 0 以前用myeclipse 6 5的时候 在lib目录下添加或删除jar包 Referenced Libraries是可以同步的 现在换成myeclipse 9 0就不行了 只能在java bu
  • matlab读取excel文件详解

    MATLAB是一种十分强大的科学计算软件 不仅可以进行数值计算 矩阵运算 还可以处理Excel CSV和其他常见格式的数据 在现实生活中 Excel文件是非常常见的数据文件 它包含了各种信息 诸如数据记录 计算和预测等 MATLAB提供了一
  • 单链表的创建和添加元素(具体代码实现) [数据结构][Java]

    单链表的创建和添加元素 具体代码实现 具体代码如下 实现了单链表的创建和元素的添加 package com ffyc linkedlist public class SingleLinkedList 先初始化一个头结点 头结点不能动 头结点
  • gazebo仿真 机械臂抓取和放置 使用ros_control插件

    仿真截图 rqtgraph ROS Control教程官方 http gazebosim org tutorials tut ros control 下图概述了仿真 硬件 控制器和传输之间的关系 图片分 gazebo仿真 和真实硬件两部分
  • 使用weex,开发美食app之vue页面实现

    这里就带用weex大家做一个简单的app 数据接口来自 阿里云 https market aliyun com products 57126001 cmapi012028 html spm 5176 8216963 738024 10 mt
  • MixFormer: End-to-End Tracking with Iterative Mixed Attention解读

    MixFormer End to End Tracking with Iterative Mixed Attention 代码 文章 https github com MCG NJU MixFormer Abstract 跟踪通常采用特征提
  • root用户无法启动vscode的解决方法

    root用户无法启动vscode 的解决方法 1 vscode with root 2 解决方法 3 总结 1 vscode with root 今天切换到Ubuntu的root用户进行编码调试 发现VSCode一直无法打开 命令提示和网上
  • Failed to compile with 1 error。Syntax Error: Error: Loading PostCSS Plugin failed: Cannot find modul

    Syntax Error Error Loading PostCSS Plugin failed Cannot find module postcss pxtorem 错误 解决啦 方法 npm i postcss pxtorem 5 1
  • 使用 redux 有哪些原则?

    核心描述 单一数据源 整个应用的全局 state 被存储在一棵 object tree 中 并且这个 object tree 只存在于唯一一个 store 中 State 是只读的 唯一改变 state 的方法就是触发 action act
  • Java生成指定时间段的一个随机时间

    package com tsjsr util import java text SimpleDateFormat import java util Date import junit framework TestCase public cl
  • 数组应用: 找出一组数据中比均值大的数据并输出

    数组应用 找出一组数据中比均值大的数据并输出 问题描述 由键盘输入读取整型数据 数据数量不超过100个 当读取到数据 1时 停止读取数据 并计算这些数据的均值 不包含 1 将大于均值的数据输出 问题分析 给定了数据数量不超过100 若将每个
  • java设计模式---- 适配器模式,手写SpringMVC适配器设计模式

    主文章 所有java设计模式的目录 https blog csdn net grd java article details 122252696 源码位置 码云 https gitee com yin zhipeng design mode
  • seaborn官方文档的一些坑(以tips为例)

    初次接触seaborn的一个问题 Seaborn 是一个基于 matplotlib 且数据结构与 pandas 统一的统计图制作库 主要特点是画风优良 图形类别更加多样 但数据结构依赖pandas库 比matplotlib pyplot少了
  • 转:浅谈HTTP中Get、Post、Put与Delete的区别

    1 GET请求会向数据库发索取数据的请求 从而来获取信息 该请求就像数据库的select操作一样 只是用来查询一下数据 不会修改 增加数据 不会影响资源的内容 即该请求不会产生副作用 无论进行多少次操作 结果都是一样的 2 与GET不同的是
  • Conda安装Postgresql数据库

    conda search postgresql 查询数据库可安装版本 conda install postgresql 12 2 安装12 2版本的postgresql 创建一个新的PostgreSQL数据库集簇 initdb创建一个新的P
  • ruoyi数据权限学习

    思路 用户关联了角色 用户可以关联多个角色 给角色设置数据权限分类 数据权限分类有如下5种 全部数据权限 DATA SCOPE ALL 自定数据权限 DATA SCOPE CUSTOM 部门数据权限 DATA SCOPE DEPT 部门及以
  • Keil MDK的CMSIS USART Driver使用

    前言 本文适用于使用过Keil MDK软件且有一定的单片机开发基础的人员 软件版本 Keil MDK v5 24 硬件开发板 STM32F429I Discovery 预备知识 Keil RTX线程使用 Keil MDK v5新增了pack