第一次深入学习stm32,花了好长时间才看懂代码(主要是C语言学习不够深入),又花了段时间自己敲了一遍,然后比对教程,了解了利用中断来串口通信的设置方法。板子是探索版f407,本实验工程把正点原子库函数工程模版拿来使用,自己主要敲了一下main.c、usart.h和.c文件。一、头文件usart.h1 #ifndef __USART_H //定义同时防止重复定义
2 #define _
开始stm32的学习路程了,每一步都要打下坚实基础,今天看了stm32 gpio的操作,写一篇总结和心得吧!什么是IO口?STM32的几种IO输入输出模式IO口即input & out 输入与输出,单片机控制外设的一个重要方法。IO口一般上限接3.3v,但由于有的端口存在保护二极管,可以容忍5v电压,一般在资料中用TF标出。stm32的IO口可以由软件来配置为8种模式:输入: 1、输入浮空
目录概述一、使用方法二、STM32CubeMx配置三、Examples四、运行结果五、总结概述 本篇文章介绍如何使用STM32HAL库,来读取 UID唯一码示例硬件:STM32F103CBT6最小系统板 软件:Keil 5.29 + STM32CubeMX6.01 一、使用方法 &nb
文章目录前言一、环境二、STM32CubeMX1、配置SYS2、配置RCC3、配置时钟4、USART设置5、Code Generator设置6、Project Manager 设置三、通过KEil配置代码1、编译运行2、打开main.c3、编译烧录4、结果演示5、串口输出波形分析四、串口中断通信1、设置STM32CubeMX2、通过KEil配置代码打开`main.c`,添加代码:在`int ma
STM32芯片自带以太网模块,该模块包括带专用 DMA 控制器的 MAC 802.3(介质访问控制)。它支持介质独立接口(MII) 和简化介质独立接口 (RMII),并通过一个选择位在两个接口间进行切换(请参见SYSCFG_PMC 寄存器)。自带了一个用于外部 PHY 通信的 SMI 接口,通过一组配置
转载
2024-09-27 16:40:01
1055阅读
一。问题产生的过程 起初想用stm32做一个中断控制的4x4阵列键盘,利用的是PA0~PA7,八个I/O口。摁下按键对应的横(纵)线为接地为低电平。 识别方式为PA4~PA7设为上拉电阻输入,PA0~PA3设为推挽输出并将其复位(设为0)来保证无论对应横线上的按键是否按下恒为低电平。摁下按键后读取八个I/O口的值赋予a,然后将PA4~PA7、PA
中断作为stm32中必不可少的一个功能,其重要性是不言而喻的因此把中断学习好是根本。 所以今天就来好好啃一下中断配置的知识,俗话说:磨刀不误砍柴工。问题是什么呢?项目中我用到了一个触摸键盘TTP229,结果在测试键盘时,不能够输入密码?最终,调试出bug就是由于中断优先级的影响。 本项目使用到的是STM32F030C8型号的MCU,我们可以
定义:
TXD1----- PA9-US1-TX
RXD1----- PA10-US1-RX
速率:115200,n,8,1/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#in
1 外部中断概述 EXTI(External interrupt/event controller)—外部中断/事件控制器,和在STM32NVIC中断优先级管理(中断向量表)中讲述的CM3内核的外部中断不同。特指的是,在中断向量表中的EXTI的外部中断。STM32的每个IO都可以作为外部中断输入。EXTI
转载
2024-04-07 06:25:09
717阅读
出于节约成本又想快速上手的角度出发选择了这款单片机进行开发。但是stm32f030这款单片机的网上资源比其他系列少了很多,输入捕获采集的例程更是极少。楼主使用PB1口进行捕获采集计算频率时发现无法进入捕获中断,经过学习其他历程发现输入捕获时io口初始化很重要,io口需要设置为复用推挽输出才能触发捕获中断(请原谅楼主第一次用捕获中断)。最后实测频率1-1000hz的信号源输出误差在1%以下。部分代码
转载
2024-09-21 08:03:21
180阅读
(本文参考STM32 开发指南 V1.3 —— ALIENTEK 战舰 STM32 开发板库函数教程 )1. 实验设计我们用 TIM5 的通道 1(PA0)来做输入捕获,捕获 PA0 上高电平的脉宽(用 WK_UP 按键输入高电平),通过串口打印高电平脉宽时间。2. 原理说明基本原理可以参考上一篇博文,在上个实验的基础上,我们稍作修改,就可以
目录寄存配置步骤查看总线中包含了什么外设 查看RCC->AHB1ENR寄存器设置GPIO端口模式寄存器 设置GPIO端口输出类型寄存器 设置GPIO端口输出速度寄存器 设置GPIO端口上下拉寄存器 设置GPIO端口输出数据寄存器 设置GPIO端口输入数据寄存器例程寄存配置步骤输出GPIO口配置步骤:查看外设在哪个总线上->设置
通信基础知识我们常见的单片机常见的通讯方式有:UART、IIC、SPI等等。按照其特点可以做一下分类。(个人理解的方式、若要深究并不一定与其完全一致。)1、工作方式单工:只能单向传递信息。如接受端就只能接收,不能发送。半双工:**可以双向通信,当是不能同时双向通信。**即同一时刻,一段只能接收或者发送。IIC全双工:可以实现同时双向的通信。UART、ISP2、通讯方式串行通信:把一组数据拆分为一位
串口在产品应用中很常见,但是单片机的默认带的串口往往比较少,有时候就会出现串口不够用,所以就想着能不能用普通IO口模拟串口来实现串口的功能。 要模拟串口首先要清楚串口数据传输过程中的原理。 常用的串口格式为 1位起始位,8位数据位,无校验位,1位结束位。起始位为低电平,结束位为高
STM32CubeMX 真的不要太好用由于工作内容的变动,我已经很久没有正经的玩过单片机了,近期又要用它做个小玩意了,还是选 stm32 吧,外设库开发不要太方便,哈哈哈先去 stm32 社区逛了逛,发现了一个新字眼 STM32CubeMX,简单看了下,大概明白是个 ST 公司新推出的一个配置工具,直接由图形界面简单配置下,生成初始化代码,并对外设做了进一步的抽象,让开发人员更只专注应用的开发,挺
转载
2024-06-19 19:44:29
461阅读
基于STM32F10x的串口(USART)输入输出编程
1 前言 STM32有强大的固件库,绝大部分函数都可以有库里面的函数组合编写。固件库可以到ST官网上下载,也可以搜索“STM32 固件库 v3.5”下载到固件库。本文章就是基于固件库来编写有关串口的输入输出函数。由于博主的知识水平有限,目前仅仅是将程序的思路和实现给出,具体到函数的执行效率、代码
概述USART是通用同步异步串口通信的简称,以STM32为例,它不仅支持最基本的通用串口同步、异步通信,还具有LIN总线功能(局域互联网)、IRDA功能(红外通信)、SmartCard功能。异步串口通信协议最基本、最常用的方法:全双工、异步通信方式。异步通信串口通信协议如下: 配置串口通信,至少要设置这几个参数:字长(一次传送的数据长度)、波特率(每秒传输的数据位数)、奇偶校验位、还有停止位。故必
转载
2024-07-28 10:30:59
294阅读
stm32的IO理解:STM32中空的I/O管脚是高电平还是低电平取决于具体情况。1、IO端口复位后处于浮空状态,也就是其电平状态由外围电路决定。2、STM32上电复位瞬间I/O口的电平状态默认是浮空输入,因此是高阻。做到低功耗。3、STM32的IO管脚配置口默认为浮空输入,把选择权留给用户,这是一个很大的优势:一方面浮空输入确保不会出现用户不希望的默认电平(此时电平取决于用户的外围电路);另一方
转载
2024-04-09 11:28:20
711阅读
单片机引脚配置方式 方式一:直接写寄存器来配置的话,那么,看上手册,给“配置寄存器”对应的位写0或者1就可以达到目的。方式二:调用库函数进行配置,对结构体了解选择好GPIO_Mode之后,就要使用GPIO_Init()函数来配置,你可以打开这个配置函数,实际上也是在对“配置寄存器”进行写操作。
转载
2024-07-09 00:05:32
497阅读
目录1.认识串口2.stm32串口介绍2.1 查询方式2.1 中断方式2.2 DMA方式3.使用stm32串口实现printf 串口作为嵌入式设备最常用的外设之一,被广泛的应用。本文介绍STM32串口的如何使用。从以下几个方面介绍:1.认识串口 常用串
转载
2024-03-17 14:06:16
800阅读