- 博客(25)
- 收藏
- 关注
原创 基于stm32的音频数据的Flash读取与ADC播放
一、创建工程1.1配置sys选择自己的芯片1.2配置定时器1.3打开外部时钟1.4配置时钟1.5配置PC13位output对应板上的LED1.6设置堆栈为4K,导出二、keil下的配置将flash.c 和flash.h添加到工程中添加代码:#include "flash.h"uint8_t FlashWBuff [255];uint8_t FlashRBuff [255]; uint8_t i; uint8_t FlashTest[] = "Hello
2021-12-31 17:45:53
1751
原创 STM32cube中FAT文件模式对SD卡的数据读取
文章目录一、创建工程二、代码移植2.1下载源代码2.2移植文件三、代码修改四、硬件连接4.1SD卡的硬件连接4.2串口连接五、展示六、参考一、创建工程打开CubeMX,选择STM32F103RC芯片(选择自己的芯片),点击Start Project进入工程配置点击FATFS,勾选User-defined配置sys配置PA4口为Output点击GPIO,将PA4的User Label修改为SD_SC将SPI1配置为如下状态配置USART1配置晶振
2021-12-22 16:51:42
603
原创 Altium Designer绘制电路原理图并完成STM32和SD卡的系统原理图设计
文章目录一、下载安装Altium Designer1.1下载Altium Designer1.2安装Altium Designer1.3修改文件二、绘制stm32电路原理图2.1绘制准备2.1.1新建工程2.1.2添加元件库2.2绘制原理图三、STM32+SD卡 的系统原理图设计四、总结五、参考一、下载安装Altium Designer1.1下载Altium Designer网盘链接:https://pan.baidu.com/s/1MozzJsqhdfYCrjaxMKHo6g提取码:01231.
2021-12-19 20:34:57
749
1
原创 Ubuntu和keil下的全局变量、局部变量、堆、栈
文章目录一、全局变量&局部变量1.1全局变量1.2局部变量1.3差别1.3.1作用域不同1.3.2内存存储方式不同1.3.3生命期不同1.3.4使用方式不同二、堆&栈2.1stm32中的堆栈2.2程序的内存分配三、stm32数据的存储位置3.1RAM3.2ROM四、Ubuntu下编程验证4.1代码4.2编译运行五、stm32cubemx下编译验证5.1创建工程5.2修改main.c函数5.3编译及结果5.4结果展示六、参考一、全局变量&局部变量1.1全局变量在所有函数外部定义的
2021-12-15 21:11:00
2160
原创 基于clion与stm32cubemx点亮LED
一、安装软件1.1clionclion官网CLion: A Cross-Platform IDE for C and C++ by JetBrains网盘下载链接:https://pan.baidu.com/s/1-uhNBBdWsPfgxBqaDqigqA 提取码:qwer安装教程:勾选add "bin"folder to the PATH,之后不用在加入环境变量默认1.2安装后运行clion...
2021-12-13 21:12:58
329
原创 keil仿真波形分析
文章目录一、keil5仿真1.1 新建dubug.ini文件1.2在keil中打开工程,点击魔法棒1.3debug后进入调试界面1.4波形结果二、总结三、参考一、keil5仿真1.1 新建dubug.ini文件新建文本文件,输入以下内容:map 0x40000000, 0x40007FFF read write // APB1map 0x40010000, 0x400157FF read write // APB2map 0x40020000, 0x4007FFFF read write //
2021-12-06 20:24:20
6557
原创 基于STM32CubeMX移植uC/OS-|||系统
一、获取uC/OS-|||源码链接:https://pan.baidu.com/s/1_Wk-hbeQ7KrvnoA0GwJXdA 提取码:qwer二、整理文件夹2.1新建文件夹在下载的文件夹中新建两个文件夹uC-BSP和uC-CONFIG,后续操作会使用。2.2创建空文件用vc、dev或者其他变成软件创建bsp.c和bsp.h文件2.3导入源码2.4设置STM32cubemx环境设置gpio管脚PB0,PB1来观察两个task任务下的led闪烁,并且设置串口usart1,中断不用
2021-12-03 22:11:06
651
原创 基于SPI方式实现OLED屏显
文章目录一、SPI简介1.物理层2.协议层二、OLED1.定义2.优势3.模块工作模式选择4.模块特点三、实验过程1.实验准备2.硬件连接3.程序烧录1.下载源码2.keil设置5.编译烧录四、显示汉字1.汉字字模2.代码编辑3.显示结果五、总结六、参考一、SPI简介SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。1.物理
2021-11-20 22:48:54
6266
原创 stm32实现温湿度的采集(AHT20)
文章目录一、I2C总线协议1.I2C协议2.I2C协议的物理层和协议层3.I2C协议的两种方式--硬件I2C与软件I2C二、AHT20采集程序1.AHT20相关资料2.主要代码分析1、主函数代码2、模块读取函数3、I2C读取及输出温湿度函数三、结果显示四、总结五、参考一、I2C总线协议1.I2C协议I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN 等通讯协议的外部收发设备,现在被广泛地使
2021-11-20 20:18:13
3752
原创 点阵字模读取与显示
一、汉字编写1.机内码机内码是微软为了解决汉字编码与ASCLL编码冲突。从而规定把每个字节的最高位都从 0 换成 1(这之前它们都是 0),或者说把每个字节(区和位)都再加上 80H(128的十六进制表示),从而得到 “机内码”,简称"内码"。汉字的机内码是指在计算机中表示一个汉字的编码。机内码与区位码稍有区别。如直接用区位码作为机内码,就会与基本 ASCII 码混淆。为了避免机内码与基本 ASCII 码的冲突,需要避开基本 ASCII 码中的控制码(00H~1FH),还需与基本 ASCII 码中的字
2021-11-14 20:50:48
2795
原创 PC机串口通信传送文件
一、材料准备两台PC电脑、两个USB转TTL模块,若干杜邦线,秒表(也可手机替代)二、PC串口通信1.连线设置注:一个串口的TXD与另一个串口的RXD相连(母对母杜邦线),电源与接地各自对应相连。2.打开调试助手2.1打开要传送图片2.2设置波特率为1152002.3发送文件、预计时间为9.4s,实际测试时间为13.5s3.波特率改为2000000预测实际为0.41s,实际测试时间为6.6s。三、总结传输时延=文件大小/波特率在实验过程中出现实际时间比理
2021-11-14 14:00:09
965
原创 STM32用中断进行点灯和串口通信
一、中断1.1中断概念当CPU在处理某一事件A是,发生了另一事件B,请求CPU迅速去处理,当CPU暂停当前的工作,转去处理事件B,当CPU将事件B处理完毕后,再回到事件A中被暂停的地方继续处理事件A,这整个过程被称为中断。1.2中断程序执行过程1.3中断作用速度匹配:可以解决快速的CPU与慢速的外部设备之间传送数据的矛盾;分时操作:CPU可以分时为多个外部设备服务,提高计算机的利用率;实时响应:CPU能够及时处理应用系统的随机事件,增强系统的实时性;可靠性高:CPU可以处理设备故障及掉电
2021-11-05 19:12:50
454
原创 STM32采用串口DMA方式向上位机连续发送数据
一、DMA介绍1.1DMADMA,全称Direct Memory Access,又称直接存储器访问, 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。1.2原理DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。典型的例子就是移动一个外部
2021-11-04 17:23:35
1168
原创 目标检测程序的安装与测试
文章目录一、yolov5安装配置及使用教程1.1下载yolov51.2下载yolov5预训练模型二、安装YOLOv5三、测试yolov53.1 lmg图片测试3.2Video视频测试3.3摄像头测试四、参考一、yolov5安装配置及使用教程1.1下载yolov5Yolov5 Github地址:https://github.com/ultralytics/yolov5或者直接git clone到本地工作目录,等待下载完成:git clone https://github.com/ultralyt
2021-11-03 18:34:04
300
原创 基于keil创建STM32汇编实现串口输出Hello windows
文章目录一、编写代码1.创建工程2.编写代码3.程序烧录4.串口通讯二、参考一、编写代码1.创建工程打开keil软件,新建一个工程。选择自己的芯片类型。由于是汇编,所以直接点击cancel即可2.编写代码创建一个.s文件输入一下代码:;RCC寄存器地址映像 RCC_BASE EQU 0x40021000 RCC_CR EQU (RCC_BASE + 0x00) RCC_CFGR
2021-10-24 21:03:22
824
原创 stm32CubeMX配合keil完成流水灯以及使用逻辑分析仪观察时序波形
文章目录一、题目二、STM32CubeMX简介1.利用CubeMX点亮LED(1)前期准备(2)新建工程2.配置引脚3.时钟源配置4.工程管理5.添加代码6.编译烧录7.效果图三、keil观察输出波形1.设置仿真模式2.使用逻辑分析仪四、参考一、题目安装 stm32CubeMX,配合Keil,使用寄存器方式(汇编或C,不限) 或HAL库这两种方式,完成下列任务:重做上一个LED流水灯作业,即用GPIO端口完成3只LED红绿灯的周期闪烁。以STM32为核心制作流水灯在没有示波器条件下,可以使用Kei
2021-10-24 20:33:50
929
原创 STM32的串口协议
一、串口协议1.串口协议串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。2.RS-232标准(1)介绍RS-232是美国电子工业联盟制定的串行数据通信接口标准,原始编号全称是EIA-RS-232(简称RS
2021-10-24 14:35:43
3154
原创 以STM32为核心制作流水灯
**以STM32为核心制作流水灯**文章目录以STM32为核心制作流水灯一、硬件部分1.IO口选择2其余硬件3.连线二、软件部分2.1寄存器配置2.2主函数编写2.3程序烧录2.4成功展示三、用汇编实现流水灯四、小结五、参考一、硬件部分1.IO口选择使用GPIOB、GPIOC、GPIOD三个端口控制LED灯,在stm32手册中可以查找对应IO口来作为实验输出口。2其余硬件除stm32芯片外,还需准备红黄绿三色LED灯若干,导线(杜邦线)若干,面包板一块。杜邦线:杜邦线主要用于电路实验,在
2021-10-23 09:07:09
2198
原创 STM32F103系列芯片的地址映射和寄存器映射原理以及GPIO端口的初始化设置
一、STM32F103系列芯片的地址映射和寄存器映射原理1.什么是寄存器?(1)基本含义寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。(2)基本概念寄存器最起码
2021-10-19 22:40:57
2045
原创 基于STM32的C与汇编的混编
一、创建项目1.1点击创建打开MDK或者keil软件,点击Project,点击New uVision Project:1.2设置工程名称选择项目路径,设置工程名称:1.3选择STM芯片选择STM32103ZE1.4选择运行环境选择CMSIS下的CORE和Device下的Startup(本次实验也可不添加):二、编写程序2.1 main.c#include<stdio.h> extern void Init_1(void); int main(){ I
2021-10-12 18:40:42
2713
原创 Ubuntu中OpenCV的安装及使用示例
安装环境:VMware虚拟机安准的Ubuntu系统OpenCV版本:3.4.11一、OpenCV下载及安装1.安装包(1)下载OpenCV数据包国内下载网址:https://www.bzblog.online/wordpress/index.php/2020/03/09/opencvdownload/注:可直接在虚拟机中使用浏览器进行下载。(2)解压将压缩包直接复制在home文件夹下,在将压缩包直接解压在home文件夹中。(3)使用cmake安装OpenCV...
2021-10-08 22:48:43
523
原创 gcc常用命令和ELF文件
一、gcc常用命令代码:// A code blockvar foo = 'bar';// An highlighted blockvar foo = 'bar';
2021-10-08 16:06:30
552
原创 gcc生成静态库和动态库与.a/.os库文件的生成与使用
文章目录一、用gcc生成静态库和动态库1.准备过程2.静态库使用3.动态库的使用4.静态库与动态库比较二、实例使用库1.创建目录2.代码3.静态库4.动态库5.静态库与动态库生成文件比较三、参考资料一、用gcc生成静态库和动态库函数库分为静态库和动态库。1.准备过程(1)创建一个目录(2)hello代码hello.hhello.cmain.c(3)gcc编译得到.o文件2.静态库使用1.创建静态库创建静态库工具:ar静态库文件命名规范:以lib作为前缀,是a文件2.程
2021-10-06 21:21:15
278
原创 基于STM32汇编程序的编写
基于STM32程序的编写以 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结二级目录三级目录以 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 </font> @[TOC](文章目录)前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容
2021-09-27 22:04:20
486
原创 Ubuntu系统下C语言的编译及Makefile的应用
Ubuntu系统下C语言的编译及Makefile的应用文章目录1.使用gcc编译c语言程序1.1编写Hello World程序1.2编写一个主程序文件main1.和子程序文件sub1.c1.2.1编写main1.c程序1.2.2编写sub1.c程序1.2.3运行结果如下2.用其他编译工具编译主程序main1.c并运行2.1新建文件并输入代码2.2运行结果如下:3.用Makefile方式编写程序3.1创建一个Makefile3.2在makefile文件里编写3.3运行结果如下:1.使用gcc编译c语言程序
2021-09-11 17:33:43
321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人