目录FLASH简介 读写基本步骤FLASH简介FLASH,也就是闪存,在stm32里通常被用来放程序代码,而剩余的空间就可以被用户手动去读和写。基于STM32F103ZET6正点原子的大容量产品,512K的FLASH,共256页,每页2K,比起以前用过的51不知道高了多少倍。以下摘抄自正点原子团队的文档 STM32的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等3部分组成。主存储器,该部分用来存放代码和数据常数(如const类型的数据)。对于大容量产品,其被划分为256页,每页2K字节。注意,小容量和中容量产品则每页只有1K字节。从上图可以看出主存储器的起始地址就是0X08000000,
目录第一步:添加标准输入输出头文件第二步:重写fputc()函数第三步:重写fgetc()函数代码汇总(直接复制使用)-需要直接来复制在PC上进行C语言程序开发时,我们可以利用C语言的格式化输出函数printf()将程序的运行结果发送到显示屏上显示,也可以利用格式化输人函数scanf()读取由键盘输入的信息。在嵌入式系统的开发中,我们也希望能够将程序的运行结果或者调试信息发送到PC上显示,并读取由键盘输入的信息,实现良好的人机交互。HAL库提供的串口收发函数,功能比较简单,不能进行格式化的输入输出。如果要实现类似C语言中的格式化输入输出函数,需要把printf()函数的输出和scanf()函数
高速USB转接芯片CH347是一款集成480Mbps高速USB接口、JTAG接口、SPI接口、I2C接口、异步UART串口、GPIO接口等多种硬件接口的转换芯片。接口示意图:应用示意图:JTAG接口特点工作在Host/Master主机模式;硬件信号:TMS、TCK、TDI、TDO和TRST;支持自定义协议的快速模式和bit-bang模式,传输速率可达30Mbit/S;提供计算机端驱动程序和USB转JTAGTAP函数库,支持二次开发;SPI接口特点工作在Host/Master主机模式;内置硬件DMA,支持批量数据的快速发送和读取;硬件信号:SCS0、SCS1、SCK、MISO和MOSI;工作模式
引言:最近做完比赛后看到一个esp8266wifi模块,闲来无事就想利用它做点儿东西。但是找资料的过程中发现了一件很棘手的问题:我想直接利用网上esp8266wifi模块的能用的代码来做事情,但是网上找的代码要么是用的标准库,要么是用的爆改的hal库,就导致我想用hal库来弄的话,得重新改一堆函数。没有找到新手速成的文章,所以我解决完了后立马发个csdn来记录一下。摘要:用的是esp8266wifi模块的AP(AccessPoint)模式:模块建立wifi热点,手机连接,利用“TCP连接”这个软件给wifi模块发送数据,wifi模块又给STM32发送串口数据,进而控制点灯与否。目录1.新建HA
系列文章目录编码电机测速HAL库版0.96'OLED的使用HAL库版STM32双轮自平衡车(一)———代码思路和PID的简单介绍HAL库版STM32双轮自平衡车(二)———CubeMX的配置、原理图接线、物料准备HAL库版STM32双轮自平衡车(三)———代码精讲HAL库版STM32双轮自平衡车(四)————原理图以及PCB绘制HAL库版STM32双轮自平衡车(五)————调参完整工程——>闲鱼搜店铺“黄金独角兽的小店”完整工程以及学习资料(设置了收费望理解)https://m.tb.cn/h.UHqbvHr?tk=gXkZdkAKGX1目录系列文章目录前言一、物料准备二、原理图(接线) 三、
前言本篇主要讲解如何使用ESP8266-01S物联网模块连接Onenet云平台,并上报DHT11模块的温湿度数据。本文单片机主控采用STM32F405RGT6,使用其他主控的话基本要求有2个串口,一个串口用于调试使用,另一个用于ESP模块通讯。一、前期准备1.软件CubeMXKeil5串口调试助手Onenet云平台账户2.硬件STM32开发板一个捡来的ESP8266-01S模块一个盗版的ST-link模块一个借的USB-TTL模块一个买的DHT11温湿度模块杜邦线若干二、CubeMX配置1.配置时钟源、下载模块、时钟树略2.引脚配置这里配置了2个引脚,一个是LED,一个是DHT113.配置串口
前言本篇主要讲解如何使用ESP8266-01S物联网模块连接Onenet云平台,并上报DHT11模块的温湿度数据。本文单片机主控采用STM32F405RGT6,使用其他主控的话基本要求有2个串口,一个串口用于调试使用,另一个用于ESP模块通讯。一、前期准备1.软件CubeMXKeil5串口调试助手Onenet云平台账户2.硬件STM32开发板一个捡来的ESP8266-01S模块一个盗版的ST-link模块一个借的USB-TTL模块一个买的DHT11温湿度模块杜邦线若干二、CubeMX配置1.配置时钟源、下载模块、时钟树略2.引脚配置这里配置了2个引脚,一个是LED,一个是DHT113.配置串口
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档实验目的,使用stm32的adc采集stm32开发板的3v3、GND电压,验证adc采集功能。废话必说只会用if的大神提醒您,敌军还有30秒到达战场,碾碎他们!白银局不要怕!一、准备工作软件:keil5、stm32cubemx、串口调试助手硬件:stm32f103系列的开发板、杜邦线*1、串口工具仅此而已!!!正好6神二、配置步骤1、cubemx配置端口生成代码(就像我们打游戏设置一样这里不过多解释了!)1、打开cubemx选择完你用的芯片就到了这里啦这里我以stm32c8t6为例: 选择serialwire模式 2、时钟配置(
1、问题在使用STM32的时候配置GPIO是最常见的操作,可以使用比较简单明白的库函数配置,但很繁杂。使用寄存器的方式可以快速配置,对于同一个IO口的输入输出都需要使用到的时候,比如IIC通讯的SDA接口就是要输出和检测输入。我们在很多工程都能看到比如下面的一些代码://IO方向设置#defineSDA_IN(){GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=8;}#defineSDA_OUT(){GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=3;}代码:GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=8;是什么意思呢?意思
1、问题在使用STM32的时候配置GPIO是最常见的操作,可以使用比较简单明白的库函数配置,但很繁杂。使用寄存器的方式可以快速配置,对于同一个IO口的输入输出都需要使用到的时候,比如IIC通讯的SDA接口就是要输出和检测输入。我们在很多工程都能看到比如下面的一些代码://IO方向设置#defineSDA_IN(){GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=8;}#defineSDA_OUT(){GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=3;}代码:GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=8;是什么意思呢?意思