随笔分类 - STM32F1_STD库
摘要:第十三章 USART1指令控制RGB彩灯实验 1. 硬件设计 同前一章实验和已经介绍过的led 2. 软件设计 2.1 编程大纲 初始化配置RGB彩色灯GPIO; 使能RX和TX引脚GPIO时钟和USART时钟; 初始化GPIO,并将GPIO复用到USART上; 配置USART参数,使能USART;
阅读全文
摘要:第十二章 USART1接发通信实验 1. 硬件设计 为利用USART实现开发板与电脑通信,需要用到一个USB转USART的IC,我们选择CH340G芯片来实现这个功能,CH340G是一个USB总线的转接芯片, 实现USB转USART、USB转lrDA红外或者USB转打印机接口,我们使用其USB转US
阅读全文
摘要:第十一章 USART介绍 1. 串口通讯协议简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式, 电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 1.1 物理层 串口通讯的物理层有很多标准及变种,
阅读全文
摘要:第十章 通讯基本概念 1. 串行通讯与并行通讯 按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是8根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用8、16、32及64根或更多的数据线进行传输的通讯方式, 它
阅读全文
摘要:第八章 EXTI外部中断 1. EXTI简介 EXTI(External interrupt/event controller):外部中断/事件控制器,管理了控制器的20个中断/事件线。 每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI可以实现对每个中断/
阅读全文
摘要:第十一章 SysTick定时实验 1. 硬件设计 SysTick属于单片机内部的外设,不需要额外的硬件电路,剩下的只需一个LED灯即可。 2. 软件设计 2.1 编程大纲 设置重装寄存器的值(10us) 编写10us级延时函数、继续编写us级、ms级 配置SysTick中断函数 在主函数测试:流水灯
阅读全文
摘要:第九章 SysTick系统定时器 1. 导入 SysTick—系统定时器是属于CM3内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器, 计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK等于72M。当重装载数值寄存器的值递减到0的时候,系统定时
阅读全文
摘要:第十章 EXTI控制实验 1. 硬件设计 轻触按键在按下时会使得引脚接通,通过电路设计可以使得按下时产生电平变化 2. 软件设计 2.1 编程大纲 配置EXTI初始化 配置NVIC初始化 编写中断函数 主函数应用 2.2 代码分析 2.2.1 初始化用来产生中断的GPIO,初始化EXTI #ifnd
阅读全文
摘要:第九章 RCC-MCO输出 1. 使用HSE 一般情况下,我们都是使用HSE,然后HSE经过PLL倍频之后作为系统时钟。通常的配置是:HSE=8M,PLL的倍频因子为:9, 系统时钟就设置成:SYSCLK = 8M * 9 = 72M。使用HSE,系统时钟SYSCLK最高是128M。我们使用的库函数
阅读全文
摘要:第八章 GPIO-位带操作 1. 位带简介 位操作就是单独的对一个比特位读和写,在51单片机里我们见到过很多次了(sbit实现位定义,比如sbit LED1 = P2^0啦)但是STM32没有这样的关键字,所以通过访问位带别名区来实现。 在STM32中,有两个地方实现了位带,一个是SRAM区的最低1
阅读全文
摘要:第七章 GPIO输入-按键控制LED 1. 硬件设计 本章我们用到的硬件是-机械按键开关。在51单片机里我们已经学过了。此出再强调一下消抖。 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开, 使用按键时会产生带波纹信号,需要用软件消抖处理滤波,不方便输入检测。本实
阅读全文
摘要:第六章 GPIO输出-使用标准库控制LED 1. 硬件设计 在开发板上面与LED的连接见图,这是一个RGB灯,里面由红蓝绿三个小灯构成, 使用PWM控制时可以混合成256不同的颜色。 2. 软件设计 2.1 编程大纲 使能GPIO端口时钟; 初始化GPIO目标引脚为推挽输出模式; 编写简单测试程序,
阅读全文
摘要:第七章 中断应用介绍 1. 异常类型 F103在内核水平上搭载了一个异常响应系统, 支持为数众多的系统异常和外部中断。 其中系统异常有8个(如果把Reset和HardFault也算上的话就是10个), 外部中断有60个。除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。 有关具体的系统异常
阅读全文
摘要:第五章 蜂鸣器实验 1. 硬件设计 我们开发板上面使用的有源蜂鸣器,图中BEEP1: 蜂鸣器分无源和有源两种,从电路上来看,这两种蜂鸣器在这都可以工作,区别是单片机程序不一样。 当节点Beep为高电平时,三极管Q4截止,蜂鸣器无电流,不响。 当节点Beep为低电平时,三极管Q4导通,蜂鸣器有电流,会
阅读全文
摘要:第四章 新建工程-标准库版本 1. 硬件设计 工程模板,没有硬件设计 2. 软件设计 #include "stm32f10x.h" // 相当于51单片机中的 #include <reg51.h> int main(void) { // 来到这里的时候,系统的时钟已经被配置成72M。 } 3. 小结
阅读全文
摘要:第三章 寄存器点亮三个LED 1. 硬件设计 硬件设计同上一个实验,我们直接分析代码就好了。 2. 软件设计 #include "stm32f10x.h" int main(void) { // 点亮LED1 // 1.开启GPIOB 端口时钟 RCC_APB2ENR |= (1<<3); // 2
阅读全文
摘要:第六章 RCC介绍 1. 导入 首先我们得了解RCC是什么: RCC :reset clock control 也就是专门用来控制复位和时钟的,本章我们主要讲解时钟部分。 2. 为什么单片机需要系统时钟 时钟信号对于单片机(或微控制器)来说是至关重要的,它控制着微控制器内部和外部的所有时间相关操作。
阅读全文
摘要:第五章 启动文件详解 1. 启动文件简介 启动文件由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作: 初始化堆栈指针SP=_initial_sp 初始化PC指针=Reset_Handler 初始化中断向量表 配置系统时钟 调用C库函数_main初始化用户堆栈,从而最终调用main函数去
阅读全文
摘要:第二章 我们的第一个实验-用寄存器点亮LED 1. 硬件设计 在本教程中STM32芯片与LED灯的连接见图, 这是一个RGB灯,里面由红蓝绿三个小灯构成,使用PWM控制时可以混合成256不同的颜色。 由图可知,3个LED灯的阳极引出连接到3.3V电源,阴极通过限流电阻引入至STM32的3个GPIO引
阅读全文
摘要:第一章 新建工程模板 参考:7. 新建工程—寄存器版 — [野火]STM32库开发实战指南——基于野火指南者开发板 文档 (embedfire.com) 1. 新建工程 1.1 新建本地工程文件夹 为了方便后期维护和工程目录清晰(参考51单片机模块化编程),我们在电脑本地新建一个文件夹用来存放整个工
阅读全文

浙公网安备 33010602011771号