韦东山嵌入式专栏

嵌入式专家,专注嵌入式教学12年

  • 博客(13)
  • 资源 (22)
  • 收藏
  • 关注

原创 SysTick 定时器

11.1关于 SysTick 定时器SysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,节约资源。由于SysTick是在CPU核内部实现的,跟MCU外设无关,因此它的代码可以在不同厂家之间移植。本 章 将 使用系统滴答定时器实现延时函数, 注 意 SysTick 用于了 HAL 库的毫秒级延时函数“HAL_Delay()”,不建议日常使用SysTic

2021-04-27 13:17:16 15218 12

转载 ESP32|基于ESP32制作的低成本、可拓展性高的NES游戏机(1)(开源ESP32 NES模拟器)-效果演示及介绍

文章目录前言需求分析硬件选择硬件概览ESP32 NES模拟器效果图项目介绍源码、硬件获取视频教程待续。。。 ESP32|爷青回!ESP32(单片机) NES模拟器 前言小时候我们都喜欢玩FC,现在仍有很多人想做出属于自己的游戏机(模拟器),玩上几把小时候最喜欢玩的游戏,而nes模拟器正是不二之选,通过制作模拟器我们能学习到软硬件各方面的知识,可谓是很多程序员走向编程开发道路上不可缺少

2021-04-27 12:14:20 3016 1

原创 STM32中断系统

10.1 Cortex-M3 的中断和优先级正常情况下,微处理器根据代码内容,按顺序执行指令。执行过程中,如果遇到其它紧急的事件需要处理,则先暂停当前任务,执行紧急事件,待紧急事件处理完后,再恢复到刚才暂停的地方继续执行。这个产生的紧急事件就叫做中断或异常,如图 10.1.1 所示。通常,把CPU内部产生的紧急事件叫做异常,比如非法指令(除零)、地址访问越界等;把来自CPU外部的片上外设产生的紧急事件叫做中断,比如GPIO引脚电平变化、定时器溢出等。异常和中断的效果基本一致,都是暂停当前任务,优先执行

2021-04-19 15:14:45 1807 4

原创 STM32时钟系统

关于时钟时钟对于一款芯片非常重要,其作用相当于人的心脏,人只有在心率正常稳定的情况下才能健康生活,同样的,芯片只有工作在合法正常的时钟频率下才能保证程序得到正常的运行。本章就将从时钟树开始分析STM32F103的时钟系统,其中包括内部高速/低速时钟源、外部高速/低速时钟源、PLL(锁相环)和系统滴答定时器。以高屋建瓴的形式让用户对STM32F103的时钟系统有一个整体的认识,并在后续的时钟配置实验中让用户进一步的了解HAL库下的时钟配置流程。首先读者要学会如何读STM32F103系列的时钟树,如图 9

2021-04-16 11:49:15 7465 8

原创 STM32F103GPIO-LED点灯

8.1 关于GPIOGPIO(General-Purpose IO ports,通用输入/输出接口),用于感知外界信号(输入模式)和控制外部设备(输出模式),如图 6.1.1 所示的STM32F103ZET6芯片四周的细引脚就是GPIO。在嵌入式开发中,经常需要用到一些外部功能模块,比如LED、按键、蜂鸣器、温度传感器等,这些外设模块都比较简单,只需要MCU的GPIO与模块连接,控制引脚输出/读取高低电平即可。还有一些外部功能模块,需要多个引脚构成的“协议”进行通信,比如UART、I2C、SPI接口等。

2021-04-14 12:00:17 7986 4

原创 Keil常用设置

除了上述基本设置外,还有一些设置可以方便日常使用。下载后自动运行程序Keil默认在下载程序后,需要手动按下开发板复位才能启动程序。通过修改修改配置,可以下载后自动复位重启运行程序,方便调试。点击 按钮,切换到“Utilities”标签,点击“Settings”,如图 7.2.1 所示。随后弹出设置界面,切换到“Flash Download”标签,勾选上“Reset and Run”,如图 7.2.2 所示。接着再切换到“Pack”标签,去掉勾选“Enable”,如图 7.2.3 所示。生

2021-04-14 11:42:39 5819 1

原创 STM32CubeMX 创建工程模板

STM32CubeMX是ST意法半导体推出的STM32系列芯片图形可视化配置工具,用户可以通过图形化向导为Cortex-M系列MCU生成初始化代码工程模板。相较于Keil创建工程模板,STM32CubeMX步骤少、上手快,但生成的工程模板比较臃肿,因此本小结只简单介绍下相关创建操作,后面的实验仍使用前面自定义创建工程模板。读者也无需纠结使用哪一种方法,以后熟悉后,自然知道修改哪些内容,在两种方式之间任意转换。从ST官网(https://www.st.com/zh/development-tools/st

2021-04-14 10:37:52 1616

原创 STM32自定义创建工程模板

自定义创建工程模板在前面“C语言使用HAL库开发”章节里,体验了如何使用HAL快速开发。不同于使用汇编和寄存器开发,使用HAL库需要为工程准备许多相关文件,也就是创建HAL库的工程模板。工程模块没有统一的格式,通常是根据多年的开发经验和使用习惯总结出来的,以“5_程序源码\1_创建工程模板”为例,介绍如何一 个工程模板是如何创建的。如图 7.1.1 所示,一个工程包含五个文件夹,一个清理脚本,一个说明文本文件。各文件夹、文件说明如下:Core:存放从SDK文件夹抽取的部分可能会修改的核心文件;

2021-04-08 15:34:01 2637 6

原创 C 语言使用 HAL 库开发

C 语言使用 HAL 库开发ST公司先后推出了两套主要库:标准外设库(Standard Peripherals Library)和HAL库(Hardware Abstraction Layer)。标准外设库是STM32最早发布的固件库,对STM32芯片进行了完整的封装,包含所有外设的性能特征,每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。因为发布比较早,教程比较多,目前仍有不少开发者使用。标准外设库是针对某一系列STM32芯片而设计的,没有可移植性,目前该库已将停止了更新、研发,最近几年发布

2021-04-08 15:15:53 2823

原创 C 语言使用标准库开发

前面的两种开发方式,适用于任何一款芯片,但需要仔细阅读《参考手册》找到对应寄存器,然后用指针变量指向寄存器。ST公司为了让用户更快上手开发,产生用户粘性,将外设寄存器提前定义好,准备一些常用接口函数供用户使用,这就是标准库的雏形。下面来感受下使用标准库的简便性。使用标准库通常不需要知道外设寄存器地址,只需要分析《开发板原理图》得知会用到哪一个引脚。本章涉及的代码位于100ASK_STM32F103开发板资料的“5_程序源码\0_单片机开发模式的发展\2_C语 言使用标准库开发\”。首先使用C语言需要

2021-04-08 15:10:59 983

原创 C 语言操作寄存器开发

在使用C语言操作寄存器前,仍需要先分析《开发板原理图》和《参考手册》,从而得知需要操作哪些外设寄存器,假设读者已经了解需要操作哪些外设寄存器。本章涉及的代码位于100ASK_STM32F103开发板资料的“5_程序源码\0_单片机开发模式的发展\2_C语言操作寄存器开发\”。使用C语言之前,需要先设置栈,如代码段 6.3.1 所示,在上电复位后立即设置栈,随后跳入main函数执行。代码段 6.3.1 设置栈(startup_stm32f10x_hd.s); Reset handlerReset_H

2021-04-08 15:04:02 1630

原创 单片机使用汇编开发的简单介绍

汇编语言(Assembly Language)是一种用于电子计算机、微处理器、微控制器或其它可编程器件的低级语言。在单片机出现之初,由于性能限制,都是使用汇编进行开发。随着技术的发展,制程工艺的提升,单片机的处理速度越来越快,越来越多的单片机使用C语言开发。如今,一些低端MCU还在使用汇编开发;一些高要求程序优化的场合也会使用汇编;MCU/MPU的启动初始化部分也是汇编。本小结就带领读者感受下如何使用汇编操作开发板LED灯。在编写代码前,本应该分析《开发板原理图》和《参考手册》,从而得知需要操作哪些外设

2021-04-07 17:39:23 1915 5

原创 STM32 结构

从“2.2 ARM与STM32的关系”可知,ARM公司负责设计内核,半导体芯片厂商拿到内核授权后,根据产品需求,添加各类组件,生产芯片售卖。如图 6.1.1 所示,为STM32的组成示意图,其中Cortex-M3内核、调试系统都是ARM公司设计,内部总线、外设、存储、时钟复位等都由ST公司开发。在编程之前,对STM32的总线结构、存储结构、外设寄存器等有个大致了解,有助于理解编程中的一些操作。此外,中断与异常(Nested Vectored Interrupt Controller,NVIC)、时钟复位(

2021-04-06 11:07:56 13296 8

基于百问网IMX6ULL的perf工具使用.pdf

基于百问网IMX6ULL的perf工具使用.pdf

2023-10-12

基于百问网开发板进行Linux相关打印调试

基于百问网开发板进行Linux相关打印调试

2023-10-12

基于百问网IMX6ULL使用gdb+vscode+qtcreator开

基于百问网IMX6ULL使用gdb+vscode+qtcreator开

2023-10-12

全志系列芯片Tina-Linux 系统开发 详细使用手册

全志系列芯片Tina-Linux 系统开发 详细使用手册

2022-12-27

16_imx6ull_pro之_IIC编程.pdf

16_imx6ull_pro之_IIC编程.pdf

2022-01-13

15_imx6ull_pro之_LCD编程.pdf

15_imx6ull_pro之_LCD编程.pdf

2022-01-13

14_imx6ull_pro之_TF编程.pdf

14_imx6ull_pro之_TF编程.pdf

2022-01-13

13_imx6ull_pro之_EMMC编程.pdf

13_imx6ull_pro之_EMMC编程.pdf

2022-01-13

12_imx6ull_pro之_定时器.pdf

12_imx6ull_pro之_定时器.pdf

2022-01-13

11_imx6ull_pro之_GPIO中断.pdf

11_imx6ull_pro之_GPIO中断.pdf

2022-01-13

10_imx6ull_pro之_异常与中断.pdf

10_imx6ull_pro之_异常与中断.pdf

2022-01-13

9_imx6ull_pro之_重定位.pdf

9_imx6ull_pro之_重定位.pdf

2022-01-13

8_imx6ull_pro之_UART串口编程.pdf

8_imx6ull_pro之_UART串口编程.pdf

2022-01-13

7_imx6ull_pro之_时钟体系.pdf

7_imx6ull_pro之_时钟体系.pdf

2022-01-13

6_imx6ull_pro之_Makefile与GCC.pdf

6_imx6ull_pro之_Makefile与GCC.pdf

2022-01-13

5_imx6ull_pro之_LED程序涉及的编程知识.pdf

5_imx6ull_pro之_LED程序涉及的编程知识.pdf

2022-01-13

4_imx6ull_pro之_LED程序.pdf

4_imx6ull_pro之_LED程序.pdf

2022-01-13

3_imx6ull_pro之_IMX6ULL启动流程.pdf

3_imx6ull_pro之_IMX6ULL启动流程.pdf

2022-01-13

2_imx6ull_pro之_准备开发环境.pdf

2_imx6ull_pro之_准备开发环境.pdf

2022-01-13

1_imx6ull_pro之_板载资源.pdf

1_imx6ull_pro之_板载资源.pdf

2022-01-13

csdn专题采访记录

csdn专题采访记录,全面了解韦东山

2016-06-07

韦东山1234期视频教程课程表

韦东山所有视频教程的详细目录和可达目标

2016-06-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除