- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 STM32F103基于片内flash的数据读取与音乐播放
目录一、前言二、题目要求三、什么是片内flash四、闪存的编程和擦除五、基于flash的数据读取1、工程创建2、修改代码3、烧录4、调试六、基于flash的提示音播放1、生成正弦波数据2、使用DAC转换播放音频参考资料一、前言本文是基于STM32F103C8T6的片内flash数据读取,由于目前还没有音频播放模块,所以说还不知道播放效果,如果有什么问题,还请大家多多指正。二、题目要求1、Flash地址空间的数据读取。stm32f103c8t6只有20KB 内存(RAM)供程序代码和数组变量存放,因此
2021-12-29 23:31:11
3085
1
原创 用STM32F103完成对SD卡数的读写
目录一、前言二、题目要求三、SD卡协议了解1、SDIO协议简介2、SD卡物理结构3、SD卡寄存器列表4、SD卡初始化(SPI模式)5、SD卡读写(SPI模式)四、使用CubeMX创建工程五、程序的编写六、硬件准备七、结果展示参考资料一、前言由于咱们使用的是STM32F103C8T6的最小系统并没有SDIO口,所以想要外接存储设备对数据进行存储必须使用SPI对我们SD卡中的数据进行读写。二、题目要求掌握SD卡协议原理,用STM32F103完成对SD卡的数据读取(fat文件模式)。三、SD卡协议了解
2021-12-22 00:41:18
3230
7
原创 使用Altium Designer绘制STM32最小系统板及SD卡原理图
目录一、前言二、AD工程的创建1、创建一个属于我们自己的工程2、元器件的封装三、原理图绘制1、模块的绘制2、排版与分区3、SD模块的绘制效果展示总结参考资料一、前言在学习了这么久的嵌入式,我们似乎还没有仔细了解过真正的嵌入式系统的原理图,咱们一直使用的STM32最小系统板的原理图相信大家都没有仔细研究过。但是原理图对于我们的嵌入式开发来讲是非常重要的,我们需要了解到系统的各部分组成才能使我们的开发变得更为得心应手,今天我就和大家一起来学习使用AD来绘制我们经常使用的STM32F103C8T6最小系统板的
2021-12-21 20:54:53
3046
1
原创 CLion安装过程以及使用CLion实现STM32F103点灯
目录一、前言二、CLion介绍三、CLion安置过程1、CLion下载2、安装配置arm-none-eabi-gcc3、安装配置OpenOCD四、创建工程点亮LED1、题目要求2、创建工程参考资料一、前言通过学习嵌入式我发现咱们运用Keil来编译工程文件并烧录好像存在很多缺点。例如:Keil的编译界面十分老旧对于用惯了新型IDE的我们来说很不友好,看起来好像是上个世纪的产物。可能大家跟我一起做实验的时候会发现,咱们用Keil对于一些代码量“较大”的工程进行编译的时候需要大量的时间,这里的代码量“较
2021-12-15 19:39:48
1336
3
原创 Ubuntu与STM32C程序中变量的地址分配
目录一、前言二、了解C程序的内存分配三、分别在Ubuntu和STM32中验证C变量地址分配参考资料一、前言本文我将会和大家一起先回顾C程序中的全局变量、局部变量、堆、栈的概念,并通过C程序分别在Ubuntu和STM32中找到变量的地址分配,并对其进行分析。二、了解C程序的内存分配1、堆区是程序里动态分配的内容,堆区的内存容量大,使用灵活,分配后要自行回收容易产生内存碎片。2、栈区主要是存储函数的局部变量,然后程序结束后操作系统自行回收但是栈区容量较小。3、全局区(静态区)(static),全局变
2021-12-13 16:16:52
1603
原创 基于HAL库的STM32F103C8T6的uCOS移植
目录一、前言二、题目要求三、利用CubeMX建立一个STM32F103C8T6工程(HAL库)四、准备好uCOS-III源码五、移植前的准备工作1、为uC-BSP文件夹新建bsp.c和bsp.h文件2、将下图中的对应文件夹复制到uC-CONFIG文件夹中3、将uCOS相关文件赋值到HAL工程的MDK-ARM文件夹中四、开始移植1、在项目中添加我们需要的文件2、添加bsp.c和bsp.h代码3、修改main.c文件代码4、修改其他文件代码5、配置参数五、仿真查看波形一、前言好久没更新博客了,今天来教一教大
2021-12-04 00:47:34
593
原创 在oled屏幕上显示汉字
目录一、前言二、了解SPI(串行外设接口)1、SPI的定义2、SPI连接方式3、SPI时序三、题目要求四、0.96OLED使用方法1、0.96寸OLED屏幕资料五、在显示屏上显示自己的姓名与学号1、修改程序2、效果展示六、在显示屏上显示温度与湿度参考资料一、前言本实验采用的是0.96寸OLED显示屏,该显示屏采用的是SSD1306驱动芯片,而STM32我采用的是STM32F103RCT6的系统板。0.96OLED屏幕资料我会在结尾把所有工程都给出来供大家下载学习。二、了解SPI(串行外设接口)1
2021-11-21 22:00:50
19842
3
原创 STM32基于AHT20传感器的温度采集(IIC方式)
目录一、了解IIC协议1、IIC基础知识2、IIC总线结构3、IIC的两种方式参考资料一、了解IIC协议1、IIC基础知识IIC(Inter-Integrated Circuit)集成电路总线,其实是IICBus简称,是一种总线结构。它是Philips公式推出的一种基于两线的芯片间串行通信总线,使用多主从架构。I2C总线有多种用途,包括CRC码的生成和校验、MBus(SystemManagement Bus)、PMBus(Power Management Bus )。IIC特点:二线传输II
2021-11-21 12:43:00
1550
1
原创 笔记本电脑间的串口通信
目录一、前言二、题目要求三、实验过程1、USB转RS232连线方式2、电脑连线与配置四、理论传输时间与实际传输时间一、前言之前我们介绍了STM32通过杜邦线和USB转RS232模块与咱们的笔记本电脑进行串口通信,我们可以将传感器与单片机相连进行实时采样并ADC转化,将所得到的数据通过串口助手反映到咱们的电脑上。那么可能就有小伙伴要问了,咱们只能进行单片机与电脑间的通信吗,不能在两台电脑之间进行通信吗,今天咱们就要运用USB转RS232模块与简单的几根杜邦线将两台电脑相连并进行通信。二、题目要求串口传
2021-11-18 23:36:16
10217
1
原创 汉字取模读取并显示
目录一、概述二、什么是点阵1、8×8点阵原理图2、8×8点阵实物图三、汉字编码1、区位码2、机内码3、对于16×16点阵字库4、对于14×14与12×12点阵字库5、汉字点阵的获取5.1 利用区位码获取汉字5.2 利用机内码获取汉字四、在ubuntu中调用OpenCV显示图片并打印汉字1、实验要求2、实验进行前的准备3、代码编写一、概述本文主要介绍了汉字点阵的原理,了解汉字的机内码和区位码的编码规则。并在ubuntu下运行OpenCV将汉字打印到我们事先准备好的图片上。二、什么是点阵点阵字体是把每一
2021-11-15 20:31:19
4638
原创 USART向串口助手发送数据(DMA方式)
目录一、前言二、什么是DMA?1、DMA简介2、DMA主要特性3、DMA框图三、STM32CubeMX工程创建1、题目要求2、CubeMX工程配置四、Keil工程的创建五、效果展示六、总结参考资料一、前言之前我们学习了两种向串口发送数据的程序,一种是扫描,一种是中断,大家还记得两种的区别吗,之前也给大家举过例子,扫描相当于咱们的CPU一直都在执行判断程序,判断相当于咱们的CPU一直在执行其他程序直到中断的触发才转到我们的中断程序中,后者的CPU占用率比前者更低,所以大多数情况下咱们采用的是中断方式来与其
2021-11-08 22:45:39
3664
1
原创 STM32CubeMX实现串口通信(中断方式)
这里写目录标题一、STM32CubeMX工程创建1、题目要求2、配置STM32CubeMX工程一、STM32CubeMX工程创建1、题目要求完成一个STM32的USART串口通讯程序(中断方式),要求: 1)设置波特率为115200,1位停止位,无校验位;2)STM32系统给上位机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收。根据题目,我设置,串口自动发送Hello windows!,如果接收到其他数据,则返回其他数据,之后继续发送Hello win
2021-11-08 21:43:45
7191
3
原创 使用STM32CubeMX实现按键控制LED(中断方式)
(本文是基于stm32f103c8t6加上LED组成的简易按键控制亮灯)一、什么是中断1、基础知识cortex-m3支持256个中断,其中包含了16个内核中断,240个外部中断。(本博文只介绍60个外部可屏蔽中断)stm32只有84个中断,包括16个内核中断和68个可屏蔽中断stm32f103上只有60个可屏蔽中断,f107上才有68个中断先占优先级也就是抢占优先级,概念等同于51单片机中的中断。假设有两中断先后触发,已经在执行的中断先占优先级如果没有后触发的中断 先占优先级更高,就会先处理先
2021-11-03 21:36:00
7633
5
原创 STM32USART串口通信
一、串口通信协议1、UART简介嵌入式开发中,UART串口通信协议是我们常用的通信协议(UART、I2C、SPI等)之一,全称叫做通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输,它能将要传输的资料在串行通信与并行通信之间加以转换,能够灵活地与外部设备进行全双工数据交换。注:在此开发板中,是有USART(Universal Synchronous Asynchr
2021-10-25 22:42:35
21999
2
原创 使用STM32CubeMX生成Keil工程并完成流水灯
一、介绍我的上篇文章介绍了如何借助其他大佬写好的工程模板来实现我们需要的功能,这种方法其实并不是最好的,但是对于我们初学者来讲是比较友好的,因为大多数大佬的代码都附上了相应的注释通俗易懂。今天我来给大家安利一款特别实用的软件,这是ST公司专门用于stm芯片的代码生成器,它能为我们省去许多步骤,以可视化的方式为我们呈现出来,特别的方便。STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大
2021-10-23 16:59:49
16248
3
原创 用STM32F103C8T6制作流水灯
目录一、关于STM32与51的区别二、题目要求三、工程的建立四、程序的编写1、对于工程内部的熟悉2、对于工程文件的添加与撰写2.1 电路示意图2.2 代码撰写2.3 仿真六、程序的烧录1、关于USB-TTL与板子之间的连线方法2、开发板BOOT配置3、驱动及烧录程序七、连接电路八、运行结果一、关于STM32与51的区别51单片机是对所有兼容Intel8031指令系统的单片机的统称,这一系列的单片机的始祖是Intel的8031单片机,后来..
2021-10-22 19:21:23
4861
2
原创 Keil:C语言与汇编语言的互相调用
一、在C语言中调用汇编函数1.工程创建首先我们建立一个新的KEIL工程,这里我选用的是芯片是STM32F103C8点击“OK”,会出现工程选显卡,此时我们要选中CMSIS中CORE以及Device中的启动文件Startup点击“OK”,我们的工程创建完毕2.代码编写该工程的要求是:用汇编语言编写函数,功能为传入一个整型数x,函数运行后返回整型数 x+100。并用C语言调用此函数。代码如下:main.c:#include<stdio.h>exte..
2021-10-11 18:48:51
2890
原创 GCC常用命令
一、GCC常用命令1.简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL 语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语 言编译器的意思了,而是变成了 GNU Compiler Collection 也即是 GNU 编译器家族的意思了。另 一方面,说到 G
2021-10-08 17:18:07
9513
原创 Ubuntu16.04下OpenCV3.4.11的安装以及使用实例
一、安装OpenCV1 .安装包(1)下载OpenCV 3.4.11数据包国内快速下载地址:OpenCV/opencv_contrib国内快速下载 | 绕云技术博客
2021-10-08 12:49:48
295
原创 运用gcc生成静态库.a文件与动态库.so文件
一、代码编写我们先在终端中输入gedit sub1.cgedit sub2.cgedit sub.hgedit main.c分别创建好对应的源文件在对应的源文件中编写好对应的程序sub1.cfloat x2x(int a,int b){ float c=0; c=a+b; return c;}sub2.cfloat x2y(int a,int b){ float c=0; c=a/b; return c;}sub.h#ifnde.
2021-10-07 22:02:25
219
转载 基于MDK创建一个汇编语言的STM32工程
1、创建一个新的工程文件先打开MDK,启动后直接点击项目创建一个新的项目文件(1)设置好我们要保存此工程的路径(2)设置好我们创建工程的名称,这里我使用的是test(3)电子保存按键即可开始工程的配置2、配置环境2.1选择我们的单片机...
2021-09-28 14:02:22
278
转载 在Ubuntu上使用gcc和Makefile来编译C语言程序
目录一、在Ubuntu上直接用gcc编译C语言程序二、在Ubuntu上用Makefile编译C语言程序1.Makefile文件编写规则2.我对于Makefile方法的理解3.Makefile文件的编写三、在win10系统中的Dev C++上执行同样的程序一、在Ubuntu上直接用gcc编译C语言程序1.题目要求:编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int
2021-09-12 19:47:00
802
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人