STM32F103
文章平均质量分 94
青烨慕容
这个作者很懒,什么都没留下…
展开
-
STM32F103 HAL库外部中断(三)
外部中断1、外部中断配置1.1、初始化中断I/O,设置触发条件1.2、配置中断优先级(NVIC),并使能中断。1.3、编写中断服务函数。1.4、编写中断处理回调函数 HAL_GPIO_EXTI_CallbackHAL库基本使用系列的 全部博客是我重新学习HAL库的学习记录,仅作为学习记录。其中使用了正点原子Mini开发板和正点原子HAL库Demo,详细的资料请观看正点原子官网 本来计划写一下串口的使用,但是前面的博客里面已经介绍到了串口的文件夹以及串口的初始化以及基本使用,最多就是在加一个中断处理原创 2021-08-11 21:16:30 · 4817 阅读 · 1 评论 -
STM32F103 HAL库SYSTEM文件夹介绍(二)
SYSTEM文件夹1、delay1.1 、delay 延时思路1.2 、延时函数的使用1.3、HAL库自带延时函数2、sys3、usartHAL库基本使用系列的 全部博客是我重新学习HAL库的学习记录,仅作为学习记录。其中使用了正点原子Mini开发板和正点原子HAL库Demo,详细的资料请观看正点原子官网 相信使用过正点原子工程模板的小伙伴,对于SYSTEM文件夹并不陌生,里面包含了delay、sys、usart(默认的串口0)的代码。1、delaydelay 文件夹内包含了 delay.c原创 2021-08-04 19:51:58 · 2782 阅读 · 1 评论 -
STM32F103 HAL库基本使用(一)
STM32F103HAL库基本使用系列的 全部博客是我重新学习HAL库的学习记录,仅作为学习记录。其中使用了正点原子Mini开发板和正点原子HAL库Demo,详细的资料请观看正点原子官网。原创 2021-08-02 19:08:39 · 4474 阅读 · 5 评论 -
STM32 CubeIDE 使用RT-Thread Nano
STM32 CubeIDE 使用RT-Thread Nano1、RT-Thread Nano pack 安装2、创建工程添加 RT-Thread Nano2.1 、创建一个基本工程2.2、配置 Nano3、工程代码修改3.1 需要修改的部分3.2 、配置rt_kprintf端口输出3.3 、编写线程文件3.4 、main.c 修改 在STM32 CubeIDE中已经集成了RT-Thread Nano,可以直接在 IDE 中进行下载添加。1、RT-Thread Nano pack 安装打开 STM32原创 2020-09-23 21:43:05 · 3950 阅读 · 5 评论 -
STM32 CUbeIDE 使用Ymodem协议进行串口IAP升级
STM32 CUbeIDE 使用Ymodem协议进行串口IAP升级1、Ymodem协议简介2、Boodload程序3、APP程序 学习了一下使用Ymodem协议串口IAP程序升级的功能,移植的是ST的工程文件。附上下载链接https://www.st.com/content/st_com/en/search.html#q=IAP-t=tools-page=1;ST官网提供的各种IAP,其方法和原理其实都类似:就是将程序文件(二进制文件)写入FLASH。1、Ymodem协议简介 Xmodem、Ym原创 2020-09-12 15:55:27 · 4498 阅读 · 7 评论 -
STM32 CUbeIDE 低功耗模式 ——待机模式 RTC /WakeUp 唤醒
待机模式 RTC /WakeUp 唤醒1、低功耗模式2、代码编写2.1、创建工程2.2、代码2.3 、效果显示:3、下载链接 达到的效果,使用RTC定时中断唤醒待机,设置定时15S,设备上电开始工作(LED灯开始亮,串口发送RTC时间),工作结束进入待机模式,RTC定时时间到,唤醒设备,或者在设备进入待机模式下使用WakeUp按键唤醒。1、低功耗模式 在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消原创 2020-09-08 20:59:58 · 7510 阅读 · 2 评论 -
STM32 CUbeIED FatFs文件系统SPI驱动SD卡
STM32 CUbeIED SPI驱动SD卡1、FatTFs简介2、硬件电路3、创建工程4、代码修改4.1 、新建fafs_sd文件夹4.2、需要修改部分4.3 、main.c修改1、FatTFs简介 FATFS是面向小型嵌入式系统的一种通用FAT文件系统,由ANSI C语言编写,并且完全独立于底层的I/O介质。所以可以基本不做修改直接移植到任何处理器中,在STM32CUbeIDE中自带FATFS能够更加方便的使用。它支持FATl2、FATl6 和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多原创 2020-09-05 16:32:02 · 4182 阅读 · 12 评论 -
STM32 CubeIDE 矩阵键盘的使用(轮询)
STM32 CubeIDE HAL库矩阵键盘的使用1、键盘原理简介2、工程定义3、代码编写 使用STM32接一个4×4键盘,在串口发送读取到的值。 我使用的是STM32F103RC微控制器,4×4矩阵键盘,如下所示1、键盘原理简介下面使用的方法可以普遍使用在任何类型的键盘或微控制器,不仅仅局限于使用连续的IO口 键盘中的键分为行和列,使用这个来找出按下了哪个键。如上图所示,键盘上有16个键,它们分为4行4列。 一行中的所有键都是相互连接的,单个列中的所有键都是相互连接的,如下图所示 每原创 2020-08-27 16:24:02 · 3412 阅读 · 1 评论 -
STM32 CubeIDE DAC使用
STM32 CubeIDE DAC使用1、简介2、创建工程3、编写代码使用DAC 产生模拟电压,在使用ADC读取模拟电压,在串口显示。1、简介 STM32的 DAC模块 (数字 /模拟转换模块 )是 12位数字输入,电压输出 型的 DAC。 DAC可以配置为 8位或 12位模式,也可以与 DMA控制器配合使用。 DAC工作在 12位 模式时,数据可以设置成左对齐或右对齐。 DAC模块有 2个输出通道,每个通道都有单独的转换器。在双 DAC模式下, ,2个通道可以独立地进行转换,也可以同时进行转换并同原创 2020-08-26 17:20:04 · 2755 阅读 · 0 评论 -
STM32 CubeIDE 模拟舵机sg90控制
STM32 CubeIDE 舵机控制1、简介2、创建编写2.1 控制时间计算方式2.2、代码1、简介 舵机有数字舵机和模拟舵机,数字舵机一般价格高,带限位,旋转最大0-180就会停止。模拟舵机,比如sg90,不带限位,如果控制不合理,那么就会出现旋转360的结果。使用sg90舵机测试,这个舵机的三根线分别为:GND(棕色)、VCC(红色)、PWM(黄色)。 舵机一般是需要通过PWM经行控制的,控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉原创 2020-08-26 13:20:50 · 3995 阅读 · 2 评论 -
STM32 CubeIDE 4线驱动LCD1602
STM32 CubeIDE 4线驱动LCD16021、LCD1602简介1.1、引脚介绍1.2 、LCD1602 基本时序操作2、LCD1602 显示2.1 、建立工程文件2.2、程序移植2.3、可能出现的错误1、LCD1602简介 LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字),能显示的字符数是32,LCD1602内置了字库。带ASCII码字库,不能显示中文。1.1、引脚介绍LCD1602有16条引脚,还有14条引脚的,与16脚的相比缺少了背光电原创 2020-08-25 16:47:53 · 3958 阅读 · 1 评论 -
STM32 CUbeIDE 定时器中断使用
STM32 CUbeIDE 定时器中断使用1、定时器简介2、定时时间的计算3、定时中断使用3.1、创建工程3.2、 字符编码改变3.3 、生成代码 编写函数 使用STM32F103RC定时器产生中断,在中断函数里面控制LED灯翻转,标志中断产生。1、定时器简介 STM32的定时器功能十分强大,有 TIME1和 TIME8等高级定时器,也有 TIME2~TIME5等通用定时器,还有 TIME6和TIME7等基本定时器。 STM3的通用 TIMx (TIM2、 TIM3、 TIM4和 TIM5)定原创 2020-08-23 18:28:41 · 10072 阅读 · 2 评论 -
STM32 CUbeIDE ADC采集 单通道和多通道 DMA
STM32 CUbeIDE ADC采集单通道和多通道 DMA 1、ADC采集单通道1.1 、创建工程选择ADC1.2、重定向printf 可以输出小数1.3、开启 ADC DMA2、ADC采集2通道 STM32拥有 1~3个 ADC STM32F101/102系列只有 1个 ADC)),这些 ADC可以独立使用,也可以使用双重模式(提高采样率)。 STM32的 ADC是 12位逐次逼近型的模拟数字转换器。它有 18个通道,可测量 16个外部和 2个内部信号源。各通道的 A/D转换可以单次、连续、扫描或原创 2020-08-22 11:36:26 · 9377 阅读 · 3 评论 -
STM32 CubeIDE printf的重定向解决方法,输出小数
STM32CUBbeIDE printf的重定向 1、定义方式12、定义方式2 关于STM32CUbeIDE的安装和使用,我在就不多说了,有兴趣去看我上一篇博客。以前一直在使用Keil 来编程,最近换到STM32 CUbeIDE 的过程中,发现在Keil 中使用的printf重定向函数,在STM32 CUbeIDE中居然失败了,经过一番查找,发现是定义的方式和Keil有点不一样,只是添加了预处理的条件进行了选择,具体的方法如下:1、定义方式1这种方式比较简单,如下定义数组,用于保存发送的数据。原创 2020-08-16 23:51:59 · 3380 阅读 · 0 评论 -
STM32CubeIDE环境配置与安装-代码自动补全-测试
STM32CUbeIDE环境配置与安装-代码自动补全-测试1、安装环境配置1.1、Java下载、安装1.2、添加环境变量2 STM32CUbeIDE下载、安装3、添加代码自动补全3.1 添加代码补全4、代码测试点亮LED灯4.1、创建新的工程文件4.2 、代码生成4.3 、防止注释乱码和生成HEX文件4.3.1 修改字符编码防止汉字乱码4.3.2、添加生成hex文件 STM32CubeIDE属于一站式开发工具,里面集成了图形化代码自动生成和代码编译的功能。目前STM32CubeIDE的最新版本是1.4原创 2020-08-06 16:40:49 · 21287 阅读 · 8 评论 -
STM32F103RC使用esp-01s MQTT协议接入OneNET平台(AT指令)
esp-01s 接入OneNET平台原创 2020-07-26 22:00:45 · 2843 阅读 · 1 评论 -
PID控制算法的C语言实现
PID算法C实现1、PID算法简介1.1、各个环节的作用2、位置型PID算法2.1、离散表达形式:2.2、位置型代码2.3、测试效果3、增量型PID算法3.1 、离散表达式:3.2 增量型代码3.3、效果展示4、积分分离的PID控制算法4.1、代码实现4.2、效果图5、工程文件下载1、PID算法简介emsp; PID(proportion integration differentiation)其实就是指比例,积分,微分控制。目前来说,PID控制算法是一种使用非常广泛的算法。比在平衡车、无人机等方面的应原创 2020-07-21 18:07:26 · 9419 阅读 · 3 评论 -
STM32F103RC 2路ADC 采集显示,水位传感器、MQ2
DMA 2路ADC采集1、水位传感器和MQ2简介1.1、水位传感器:1.2、MQ22、使用代码 自己做小项目的时候需要测量水位和MQ2空气质量,使用的是DMA配合ADC进行采集,虽然我只是2路采集,但是可以在这个基础之上进行修改进行多路采集,水位传感器和MQ2其本质还是ADC模数转换。1、水位传感器和MQ2简介1.1、水位传感器: Water Sensor水位传感器是一款简单易用、性价比较高的水位/水滴识别检测传感器,其是通过具有一系列的暴露的平行导线线迹测量其水滴/水量大小从而判断水位。轻松原创 2020-07-20 01:06:55 · 11729 阅读 · 14 评论 -
STM32使用cJSON库,处理json格式数据
STM32移植cJSON1、cJSON库的下载与移植1.1、下载地址1.2、STM32移植1.3、修改堆栈大小1.4、报错解决2、测试展示2.1、整体串口输出2.2、编码json格式验证2.3、解析json STM32移植cJSON库创建和解析json字符,原本想使用Keil官方的那个解析json的库Jansson但是自己测试了一下,感觉使用起来并不是太好,所以选择了cJSON这个库,但是Jansson库占用的内存相对小。1、cJSON库的下载与移植1.1、下载地址我是直接下载的github上的c原创 2020-07-06 01:17:51 · 14029 阅读 · 7 评论 -
STM32使用 jansson 处理 Json格式字符
STM32 Json 字符的创建和解析1、Json简介2、jansson库的下载安装和报错解决2.1、下载安装2.2、STM32工程文件中导入jansson库2.3、报错解决2.4、修改堆栈空间3、Json 字符的创建4、Json 字符的解析4.1 纯键值对4.2、键的值是一个对象4.3、键的值是一个数组 STM32处理json字符串一般不常见,大部分都是不需要处理的数据,但是在一些通信中需要处理上传或者下传的数据,就别比如在物联网中,有一部分数据就是以json格式传输的,那么就需要对数据经行解析。我简原创 2020-07-05 00:26:40 · 6319 阅读 · 6 评论 -
STM32F103RC 0.96OLED屏幕汉字和图片显示取模
STM32F103RC 0.96OLED屏幕汉字取模1、OLED管脚简介和STM32F103RC原理图1.1 引脚简介1.2、STM32F103RC原理图2、汉字取模软件使用2.1 字体输入2.2 参数设置3、代码修改部分 STM32使用了0.96OLED屏幕,记录一下汉字取模软件PCtoLCD2002的使用的,附详细的取模过程,因为汉字的显示的程序不同,取模的设置可能不太一样,我会在我自己的最后附上我自己使用的程序,程序并不是自己原创的,使用中景圆的。 我自己使用的开发板和OLED显示屏如下图。原创 2020-07-02 19:15:44 · 6883 阅读 · 6 评论 -
STM32F103RC使用esp-01s连接机智云
STM32F103RC使用esp-01s连接机智云机智云账号注册和创建新产品 这几天搞了搞,机智云的物联网,试着使用STM32F103RC配合esp-01s接入了机智云的物联网,记录以下过程,仅仅是一个简单的LED灯开关,但是连接机智云的基本过程和方法是一样的。机智云账号注册和创建新产品账号注册我就不详细说了,...原创 2020-06-28 17:03:25 · 6587 阅读 · 8 评论 -
STM32F103C8T6脉冲宽度调制(PWM)
关于STM32F103C8T6工程文件自己免积分下载https://download.csdn.net/download/weixin_45488643/12522971这个仅仅是一个核心工程文件,只需要自己添加以下代码就可以。STM32F103C8T6脉冲宽度调制PWM简介配置步骤:main函数pwm.cpwm.hPWM简介 脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一原创 2020-06-15 23:59:50 · 25956 阅读 · 10 评论 -
STM32F103C8T6串口通信
STMF103C8T6串口通信串口相关的固件函数:mainusart.cusart.h 串口作为 MCU 的重要外部接口,同时也是软件开发重要的调试手段,其重要性不言而喻。串口设置的一般步骤可以总结为如下几个步骤:串口时钟使能, GPIO 时钟使能串口复位GPIO 端口模式设置串口参数初始化开启中断并且初始化 NVIC(如果需要开启中断才需要这个步骤)使能串口编写中断处理函数串口相关的固件函数: 1.串口时钟使能。 串口是挂载在 APB2 下面的外设,所以使能函数为:RCC原创 2020-06-14 23:38:28 · 18498 阅读 · 2 评论 -
STM32F103C8T6定时器的使用
STM32通用定时器的使用1、STM32F103C8T6通用定时器简介2、通用定时器 TIM3 中断控制PC13main函数timer.c函数timer.h头文件 STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和IME7 等基本定时器。STM32F103C8T6是中容量的芯片,由高级定时器TIME1 和通用定时器 TIME1~TIME5。1、STM32F103C8T6通用定时器简介 STM32 的通用定原创 2020-06-14 22:38:39 · 28934 阅读 · 3 评论 -
STM32F103C8T6蜂鸣器的使用
STM32F103C8T6蜂鸣器使用蜂鸣器简介 :有源蜂鸣器与无源蜂鸣器区别:有源蜂鸣器驱动电路:无源蜂鸣器驱动电路:STM32驱动有源蜂鸣器主函数bee.c函数bee.h函数蜂鸣器简介 : 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母"H"或"HA"(旧标准用"FM"、“ZZG”、“LB”、"JD"等)表示。有源蜂鸣器与无源蜂鸣器区别: 蜂鸣器可以分为有源蜂鸣器与无源蜂鸣器。这里的"源"不是指电源,而是指震荡源。有原创 2020-06-11 00:00:12 · 21496 阅读 · 1 评论 -
STM32F103C8T6小系统核心板点亮内置LED(PC13)
STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,是一款中容量的芯片。 芯片按片内Flash的大小可分为三大类:小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。小系统核心板实物图:自带OLED插口,ST-LINK烧录接口。原理图:从原理图可以看出,内置LED是和端口PC13连接的,所以点亮LED灯就是控制PC13端口。main函数:(参考正点原子建立工程文件)#in原创 2020-05-11 16:53:48 · 18766 阅读 · 11 评论