- 博客(23)
- 问答 (1)
- 收藏
- 关注
原创 了解STM32的内部FLASH空间
目录一、关于FLASH1.内存映射2.内部FLASH3.对内部Flash的写入过程二、工程尝试向STM32的内部FLASH写入数据三、参考资料一、关于FLASH1.内存映射首先我们需要了解一个内存映射:stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同。RAM起始地址是0x2000 0000,结束地址是0x2000 0000加上芯片的RAM大小。不同的芯片RAM也不同。Flash中的内容一般用来存储
2021-12-30 21:18:40 10063
原创 DAC音频播放
目录一、前言二、使用DAC输出周期2khz的正弦波三、使用DAC输出数字音频歌曲数据转换为模拟音频波形输出四、参考资料一、前言本博客主要介绍如何用AU获取wav格式的正弦波以及截取到的音频,并通过stm32f103c8t6的DAC模块,转换为模拟音频二、使用DAC输出周期2khz的正弦波建议先用单音音频(比如2000Hz的正弦波)的wav数据进行实验,通过DAC或PCM音频模块能够基本还原出原始正弦波声音后,再用语言/音乐信号进行实验。生成单音正弦波文件—>新建—>音频文件设置相
2021-12-30 14:58:40 1362
原创 STM32F103完成对SD卡的数据读取(fat文件模式)
目录一、关于SD卡1.简介2.SD卡的寄存器3.SD卡读取与写入(SPI模式)二、实验操作1.仪器2.代码3.连线、参考资料一、关于SD卡1.简介SD(Secure Digital Memory Card)卡与U盘生在同年,可以称为表兄弟,也是一种基于半导体快闪记忆器(Nand Flash)的记忆设备,只是接口不同,为9 Pin接口。SD卡家族有三个兄弟,他们除了外表尺寸不同外,实质上完全一样。普通SD卡标准为24mm×32mm×2.1mm,MiNi SD卡标准为20mmX21.5mmX1.4mm,M
2021-12-22 22:07:47 965
原创 安装Altium Designer并绘制stm32最小系统的电路原理图及SD卡原理图
目录前言一、安装Altium Designer二、STM32+SD卡 的系统原理图设计三、参考资料前言本博客旨在安装Altium Designer 18,学习使用Altium Designer绘制一个stm32最小系统的电路原理图,并在此基础上完成STM32+SD卡 的系统原理图设计一、安装Altium Designer安装链接如下:链接: https://pan.baidu.com/s/1cwZ5p1rsOiHMKYz9rNjZ1w提取码: 3cjt解压安装包,运行AltiumDesigne
2021-12-20 18:04:17 427
原创 Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的重温
目录一、前言二、内存分区1.程序在内存中的分区2.全局变量与局部变量3.堆与栈三、STM32的内存分配1.STM32 中的内存分配详解2.STM32 中的内存管理3.STM32 中的堆与栈四、Ubuntu 和 STM32 地址下输出验证实例一、前言本文旨在:①重温全局变量、局部变量、堆、栈等概念,在 Ubuntu(x86)系统和 STM32(keil)中分别进行编程、验证(STM32 通过串口 printf 信息到上位机串口助手) 。②归纳出 Ubuntu、stm32 下的 C 程序中堆、栈、全局、
2021-12-15 18:54:29 329
原创 Clion安装配置以及调用32cubeMX实现点灯
目录一、前言二、安装Clion1.关于Clion2.下载Clion三、配置Clion环境1.配置arm-none-eabi-gcc2.配置OpenOCD3.配置MinGW4.配置环境四、开始项目五、运行效果六、总结一、前言之前做过Keil调用32cubeMX实现点灯嵌入式:使用CubeMX和HAL库点亮LED流水灯,这一次尝试安装配置Clion,并用Clion调用32cubeMX实现点灯二、安装Clion1.关于ClionClion 是一款专门开发 C 以及 C++ 所设计的跨平台的 IDE。它是
2021-12-14 20:26:51 529
原创 嵌入式:uc/OS系统移植及简单应用
目录一、前言二、使用CubeMX建立STM32F103C8T6HAL库三、准备uCOSIII源码四、移植前准备1.为uC-BSP文件夹新建bsp.c和bsp.h文件2.给文件夹uC-CONFIG添加以下文件(从以下路径复制过来)(下载的源码里可能已经做了这些操作)3.将uCOS相关文件复制到HAL工程的MDK-ARM文件夹下五、开始移植1.将uCOS文件添加到项目2.为bsp.c和bsp.h添加代码3.修改main.c文件代码4.修改其余文件部分代码5.参数配置六、运行七、实现三个任务八、总结九、参考资料
2021-12-02 20:07:30 825
原创 STM32F103的SPI口进行OLED屏的使用
目录一、OLED屏字模显示1.关于OLED2.关于SPI二、OLED屏字模显示1.字模获取2.代码编写3.电路连线4.最后效果三、OLED屏温湿度读取显示1.前言2.代码3.连线4.最后效果四、参考资料一、OLED屏字模显示1.关于OLED有机发光二极管(OrganicLight-Emitting Diode,OLED),又称为有机电激光显示、有机发光半导体(OrganicElectroluminescence Display,OLED),是指有机半导体材料和发光材料在电场驱动下,通过载流子注入和复合
2021-11-21 19:32:43 3737
原创 STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集
目录一、关于I2C协议二、实现AHT20采集程序三、硬件连接四、温湿度采集五、参考资料一、关于I2C协议概念I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层
2021-11-19 15:09:49 1598
原创 两台电脑之间串口传输文件
目录前言一、前期准备二、传输操作三、总结前言本博客是串口传输文件的练习。将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑。一、前期准备将TTL连接为如图所示注意:①两USB串口对应链接 RXD,TXD反串连接 ②TXD -> RXD 后将Usb串口接到电脑com口出安装串口调试助手链接: https://pan.baidu.com/s/1MRA_pL
2021-11-13 19:07:22 6196
原创 Ubuntu下调用OPENCV在图片上加汉字
目录前言一、实验内容二、关于汉字点阵库1.汉字编码2. 点阵字库结构3.汉字点阵获取三、实验准备四、实验过程五、参考资料前言本博客为学习点阵汉字的字模读取与显示的实验记录,其中遇到的问题与解决方法不尽详细,欢迎大神斧正。一、实验内容学习理解汉字的机内码、区位码编码规则和字形数据存储格式。在Ubuntu下用C/C++(或python) 调用opencv库编程显示一张图片,并打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点阵
2021-11-13 15:42:53 204
原创 STM32串口DMA通信
目录前言一、DMA介绍二、创建CubeMX项目生成代码三、代码补充四、串口发送数据五、总结六、参考资料前言STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据。一、DMA介绍DMA,全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地
2021-11-03 13:09:50 1512
原创 嵌入式:初次了解STM32的USART串口通讯(中断方式)
目录前言一、CubeMX生成代码二、代码补充三、串口通信四、参考资料前言因为之前写过一篇嵌入式:初次了解STM32的USART串口通讯(查询方式),所以这次用中断方式再做一次,看看两者的不同,并且这次在上次的基础上有所改变,代码是用CubeMX生成的。一、CubeMX生成代码选择芯片设置时钟设置串口1)点击Connectivity中的USART12)设置MODE为异步通信3)基础参数:波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1,接收和发送都使能
2021-11-03 11:51:54 1452
原创 嵌入式:STM32F103中断方式点亮LED流水灯
目录前言一、创建工程1.使用CubeMX生成代码2.补充代码前言本文是在之前写的文章嵌入式:使用CubeMX和HAL库点亮LED流水灯的基础上做了一些改变,之前是用的查询方式点亮LED灯,这次使用中断的方式点亮LED灯。一、创建工程1.使用CubeMX生成代码打开CubeMX,点击ACCESS TO MCU SELECTOR创建新项目选择新片型号,这里我根据我的选择STM32F103C8点击System Core,双击RCC,将属性改为下图所示点击SYS选择Debug中的Serial
2021-11-03 11:18:53 3003
原创 嵌入式:使用CubeMX和HAL库点亮LED流水灯
目录前言一、使用CubeMX生成代码点亮LED灯1.使用CubeMX生成代码2.生成芯片可执行的hex文件3.程序运行:亮灯二、示波器显示看波形确定代码正误三、总结前言本文是嵌入式菜鸡做点小实验来熟悉CubeMX、HAL库的简单实验报告。一、使用CubeMX生成代码点亮LED灯1.使用CubeMX生成代码打开CubeMX,点击ACCESS TO MCU SELECTOR创建新项目在Part Number处选择芯片,这里以STM32F103C8T6为例,然后在中间会出现一列芯片的信息,点击之后再
2021-10-26 20:56:33 1474
原创 嵌入式:初次了解STM32的USART串口通讯(查询方式)
目录前言一、建立MDK5项目二、添加代码三、连接电路四、串口助手观察输出五、Keil上示波器波形检验前言本文运用MDK5生成芯片可执行hex文件,并在串口调试助手(这里下)上面以查询方式连续发送“hello windows!”,其中代码参考了基于 MDK 创建 STM32 汇编语言工程并分析 HEX 文件内容。一、建立MDK5项目创建项目具体流程可以参考用Keil uVision5创建纯汇编语言的STM32工程或者用Keil uVision5实现C语言与汇编语言的混合编程。特别说明:这里我选用的芯
2021-10-25 19:39:00 1081
原创 STM32F103寄存器方式点亮LED流水灯(软硬结合初尝试)
目录一、关于STM32芯片寄存器1.什么是寄存器2.怎么找到某个寄存器的地址3.寄存器映射二、GPIO端口设置1.GPIO简介2.GPIO框图剖析3.初始化设置概述三、点亮LED流水灯1.打开GPIO口的时钟信号2.GPIO初始化3.设置低电平四、C语言全代码及软硬结合操作1.创建项目2.连接电路3.编译程序一、关于STM32芯片寄存器1.什么是寄存器提到单片机,就不得不提到寄存器。根据百度百科介绍,寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。
2021-10-21 14:00:34 964
原创 用Keil uVision5实现C语言与汇编语言的混合编程
文章目录1.新建工程2.配置环境2.1 选择设备2.2 选择运行环境2.3 添加源文件3.测试代码3.1 汇编语言源代码3.2 C语言源代码3.3 仿真器设置3.4 编译分析4.拓展1.新建工程打开Keil uVision5点击最上面一行的project,如下图所示在弹出的窗口点击选项New uVision Project,创建新的工程;具体如下图所示;点开后,设置项目工程路径、项目名称并保存2.配置环境2.1 选择设备设置工程的目标环境,本文基于STM32F103ZET6,因此在弹
2021-10-12 10:57:15 10501
原创 Ubuntu16.04下OpenCV3.4.11的使用实例
文章目录一、前言二、图片处理示例三、视频处理示例1.虚拟机获取摄像头权限2.播放视频3.录制视频四、参考资料一、前言在Ubuntu下安装OpenCV,非常的麻烦,可以参考ubuntu安装opencv的正确方法,而 OpenCV 的使用很有意思,可以应用在许多领域,比如人脸识别、摄像监控等等。本文以距离图片处理和视频处理的示例来展现一下Opencv在ubuntu上的使用。二、图片处理示例首先创建一个代码存放文件夹 photo ,然后进入文件夹中。mkdir photocd photo创建一个
2021-10-09 13:29:08 206
原创 了解linux系统的gcc编译器
文章目录一、前言二、GCC相关简介三、helloworld实例1.准备工作2.编译过程①.预处理②.编译③.汇编④.链接3.一步到位代码一、前言本文主要以helloworld的C语言代码来举例说明linux系统下gcc编译器对于程序的具体的构建编译过程。二、GCC相关简介GCC:GNU C Compiler 经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL 语言,以及支持函
2021-10-07 21:37:32 422
原创 Linux系统下gcc生成静态库和动态库及实例
本文目录一、前言二、用gcc生成静态库和动态库(一).hello实例1.准备过程2.静态库的使用3.动态库的使用(二).linux下静态库.a和.so库文件的生成和使用实例1.准备过程2.静态库.a文件的生成与使用3.动态库.so文件的生成与使用一、前言我们通常把一些公用函数制作成函数库,供其他程序使用,函数库分为静态库和动态库两种。静态库在程序编译时会连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入。本文主要通过举例来说明在Li
2021-10-06 20:40:56 302
原创 用Keil uVision5创建纯汇编语言的STM32工程
这里写目录标题1.新建工程2.配置环境2.1 选择设备2.2 选择运行环境2.3 添加源文件3.测试代码3.1 源代码3.2 仿真器设置3.3 编译调试4.总结1.新建工程打开Keil uVision5点击最上面一行的project,如下图所示2.配置环境2.1 选择设备2.2 选择运行环境2.3 添加源文件3.测试代码3.1 源代码3.2 仿真器设置3.3 编译调试4.总结...
2021-09-29 22:12:02 3254 1
原创 Ubuntu系统和windows系统下编程编译的区别
Ubuntu系统和windows系统下编程编译的区别 本文任务 在Ubuntu系统下用C语言编写一个简单的输出 hello word 的程序,并编译有、运行之;请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果p
2021-09-14 10:23:27 771
空空如也
想知道这种方程怎么用matlab求解
2021-08-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人