- 博客(25)
- 收藏
- 关注
原创 STM32F1C8T6音频数据的Flash读取与DAC播放
文章目录题目要求一、Flash地址空间的数据读取二、CubeMX工程三、kile代码的调试撰写四、基于片内Flash的提示音播放程序总结题目要求1、Flash地址空间的数据读取。stm32f103c8t6只有20KB 内存(RAM)供程序代码和数组变量存放,因此,针对内部Flash的总计64KB存储空间(地址从0x08000000开始),运行一次写入8KB数据,总计复位运行代码4次,将32KB数据写入Flash。并验证写入数据的正确性和读写速率。2、基于片内Flash的提示音播放程序。1)实验数据准
2022-01-02 13:22:04
532
原创 STM32之完成对SD卡的数据写入
系列文章目录文章目录系列文章目录一、SD卡模块介绍简介:SD卡物理结构:二、依托协议1.引入库三、实验过程四、实验结果作业要求:掌握SD卡协议原理,用STM32F103 完成对SD卡的数据读取(FAT文件模式)。一、SD卡模块介绍简介:SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,被广泛地于便携式装置上使用,例如数码相机、平板电脑和多媒体播放器等。控制器对 SD 卡进行读写通信操作一般有两种通信接口可选,一种是 SPI 接口,另外一种是
2021-12-24 11:39:57
3882
原创 Altium Designer的安装并绘制stm32最小系统的电路原理图
文章目录一、Altium Designer 18的安装二、STM32+SD卡的系统原理图设计一、Altium Designer 18的安装示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。链接:https://pan.baidu.com/s/1X-lJdIQpIJselnmpmU2lmA提取码:ygmr解压安装包,运行AltiumDesigner18Setup.exe开始安装选择安装目录,next打开软件 选设置勾选这个将crack里
2021-12-22 21:33:53
203
原创 ubuntu和stm32下的C程序的内存分配问题
文章目录题目要求一、内存分配二、ubuntu和stm32编程验证题目要求编写一个C程序,重温全局变量、局部变量、堆、栈等概念,在Ubuntu(x86)系统和STM32(Keil)中分别进行编程、验证(STM32 通过串口printf 信息到上位机串口助手) 。归纳出Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址,进行对比分析。一、内存分配在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量区、代码区,其中全局区中高地址分布着.bs
2021-12-22 20:36:13
157
原创 Clion安装配置调用32cube实现点灯
文章目录作业要求一、Clion的安装安装arm-none-eabi-gcc安装配置 MinGW安装openocd二、配置Clion点击创建新工程配置 toolchains配置cmake配置Embedded Development三、实现工程生成stm32cubemx程序添加代码与编译四、烧录运行作业要求安装Clion2021,采用一套新的嵌入式软件开发工具包(替代Keil),完成stm32F103 点亮LED的程序。一、Clion的安装进入官网下载:Clion下载下载好了后安装Clion狠狠
2021-12-14 18:13:02
1120
原创 使用Keil逻辑分析仪查看波形
文章目录一、keil仿真使用一、keil仿真使用打开一个项目,需要向上位机发送信号开始调试点击系统分析窗口的第一个逻辑分析点击setup,添加引脚Display Type选择bit点击运行此时输出为定值...
2021-12-06 13:51:17
1776
原创 hai库使用
文章目录一、HAI生成二、运行结果一、HAI生成芯片选STM32F103C8RCC配置,这个要使能外部低速时钟,SYS配置可以不用变RTC模块使能时钟源和使能日历,同时将RTC_OUT选择为no rtc output,以及把下面的中断加上RTC_OUT是是否使能tamper(PC13)引脚上输出校正的秒脉冲时钟。在parameter setting模块可以初始化时间,也可以选择在代码里初始化时间要用串口发送信息,所以使能一个usart1打开keil,直接使用hal库自带的函数输出当前
2021-12-06 13:43:05
221
原创 -uc/OS系统移植
作业要求学习嵌入式实时操作系统(RTOS),以uc/OS-III为例,将其移植到stm32F103上,构建至少3个任务(task):其中两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制;另外一个task以2s周期通过串口发送“hello uc/OS! 欢迎来到RTOS多任务环境!”。记录详细的移植过程。一、使用CubeMX建立STM32F103C8T6HAL库选择STM32F103C8配置RCC配置SYS设置PC13为GPIO_Output用于点亮LED灯设置串口US
2021-12-06 13:37:13
172
原创 基于STM32的0.96寸OLED显示屏显示数据
文章目录实验要求一、了解SPI(串行外设接口)二、使用0.96寸OLED显示屏显示数据三、自行修改程序实现显示总结实验要求理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:显示自己的学号和姓名;显示AHT20的温度和湿度;上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者一段歌词或诗词(最好使用硬件刷屏模式)。一、了解SPI(串行外设接口)SPI的定义SPI(Serial Peripher
2021-11-21 13:18:23
6835
1
原创 stm32通过I2C接口实现温湿度(AHT20)的采集
实验要求学习I2C总线通信协议,使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。具体任务:1)解释什么是“软件I2C”和“硬件I2C”? (阅读野火配套教材的第23章“I2C–读写EEPROM”原理章节)2)阅读AHT20数据手册,编程实现:每隔2秒钟采集一次温湿度数据,并通过串口发送到上位机(win10)。一、I2C通信协议1. I2C协议简介I2C通讯协议(Inter-Integrated Circuit)是由Phiil..
2021-11-21 12:56:19
408
原创 Ubuntu中opencv图片上输出文字
文章目录一、实验要求二、汉字点阵字库原理1.汉字编码2. 点阵字库结构3.汉字点阵的获取三丶在Ubuntu中使用opencv在图上输出文字一、实验要求学习理解汉字的机内码、区位码编码规则和字形数据存储格式。在Ubuntu下用C/C++(或python) 调用opencv库编程显示一张图片,并打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点阵字形字库(压缩包中的文件HZKf2424.hz)中对应字符的字形数据,将名字和学号
2021-11-13 19:32:24
366
原创 电脑之间利用串口传输文件
实验要求1.串口传输文件的练习。将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。一、需要器材两台电脑,两个串口,杜邦线,其中rx与tx互接即可二、文件传输1.发送文件...
2021-11-13 19:27:21
5128
原创 STM32之中断控制LED灯
文章目录前言一、中断1. 中断地址2. 中断优先级3. 中断响应过程二、新建工程三、编写代码参考资料前言一、中断在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。1. 中断地址程序的执行无非就是寻找地址,中断也是程序的一部分,而它的地址却是由内核来确定的,而且是不允许修改的。NVIC控制器可以帮我们找到中断的地址2. 中断优先级优先级在中断里是一个非常重要的
2021-11-05 12:57:40
788
原创 STM32之DMA实现串口通信
文章目录一、DMA二、新建项目三、编写代码及运行结果参考一、DMADMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。典型的
2021-11-05 12:52:11
313
原创 stm波形观察
观察GPIO波形魔术棒设置设置Debug,其中④和⑥根据自己的芯片设置:进入调试:打开逻辑分析仪添加观察引脚 打开Setup:添加3个引脚,Display Type一定要设置为bit:运行观察波形鼠标滚轮上下滑动可以调节比例观察波形:鼠标左键点击A0从高电平变到低电平的位置,设置起始点:将鼠标放到起始点开始变为高电平的位置,查看间隔,可发现大约为1秒...
2021-10-26 18:48:33
91
原创 STM32的USART串口通讯程序
文章目录文章目录文章目录寄存器与固态库一、了解串口通信及准备工作1.串口通信简介2.STM32 的 USART 简介3.实验环境二、USART串口实验总结寄存器与固态库基于寄存器与基于固件库的stm32 LED流水灯例子的编程方式差异比较:1、基于寄存器方式的开发特点:(1)具体参数更直观;(2)程序运行占用资源少。(3)寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解(4)寄存器版式直接对内部寄存器进行操作,需要我们对寄存器非常熟悉它的缺陷也不可忽视,如下:(1)开发速度
2021-10-25 19:50:08
6057
原创 串口协议和RS-232标准,以及RS232电平与TTL电平的区别;了解“USB/TTL转232“模块(以CH340芯片模块为例)的工作原理。
文章目录文章目录文章目录一、串口协议和RS-232标准1.串口通讯2.RS-2323.RS232电平与TTL电平的区别(1).TTL电平标准(2)具体区别二、USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。参考一、串口协议和RS-232标准1.串口通讯串口通讯 (Serial Communication)是一种设备间非常常用的串行通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 通讯协议,我们以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通
2021-10-25 16:02:28
1416
原创 使用STM32CubeMX实现流水灯
文章目录文章目录文章目录一、实验工具二、STM32CUBEMX生成代码三、keil仿真调试并生成hex文件一、实验工具STMCubeMX,用来生成代码keil5,编译代码生成hex文件flymcu,将代码烧录到板子里,不会点这里板子为STM32C8T6二、STM32CUBEMX生成代码1.安装完成之后,点击help,下载依赖包2.选择自己的芯片,选上前面的复选框就可以下载了,前面是绿色就代表已经下载好了。3.包下载好之后就可以了,后面回到home界面,创建新项目4.在p
2021-10-24 19:44:50
3612
原创 STM32F103寄存器方式点亮LED流水灯
文章目录文章目录文章目录一、题目要求二、使用步骤1.引入库2.读入数据总结一、题目要求1、学习和理解STM32F103系列芯片的地址映射和寄存器映射原理;了解GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)2、以 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED 搭建电路,使用GPIOB、GPIOC、GPIOD这3个端口控制LED灯,轮流闪烁,间隔时长1秒。1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数;2)分别用汇编语
2021-10-21 18:07:55
355
原创 【嵌入式06】STM32的C与汇编语言混合编程
Keil下STM32的C与汇编语言混合编程文章目录Keil下STM32的C与汇编语言混合编程一、题目要求二、使用步骤1.引入库总结一、题目要求修改参考代码,要求将原汇编语言 Init_1函数的类型改为 int Init_1(init) ,此函数功能修改为 传入一个整型数x,函数运行后返回整型数 x+100。 请编程实现,并仿真跟踪调试;二、使用步骤1.引入库总结...
2021-10-13 18:24:19
458
原创 Ubuntu18.04下OpenCV3.4.11的安装及使用示例
系列文章目录文章目录系列文章目录一、安装opencv1 安装包2 配置环境二、使用示例-图片三、使用示例-视频总结一、安装opencv1 安装包①下载 OpenCV 3.4.11 数据包使用ubuntu的浏览器进入这个网址打开后是可以下载 opencv的安装包 选择最后一个下载下载以后将压缩包从【下载】文件夹移动到【主文件夹】 也就是然后通过终端命令 unzip opencv-3.4.11.zip解压完成得到文件使用 cmake 安装 opencv首先进入解压后的文件
2021-10-11 19:17:56
171
原创 Linux GCC常用命令 和 GCC编译器背后的故事
第一部分示例简单源文件编译这个简单c文件用于输出 hello world!经过发展 有一步到位的指令gcc test.c -o test但其实该编译经过了4个阶段(预处理、编译、汇编、连接)编译展示:预处理得道 test.i 文件编译得到 test.s 文件汇编得到 test.o 文件最后连接得到 test 文件运行test文件 ./test 运行输出 hello world!多个源文件编译常整个程序是由多个源文件组成的,相应的也就形成了多个编译单元,使
2021-10-10 17:30:08
108
原创 gcc生成静态库.a和动态库.so
目录文章目录目录一、用gcc生成静态库和动态库二、静态库使用1.1.创建所需要的文件2.静态库使用三.动态库使用1.创建动态库2.运行总结一、用gcc生成静态库和动态库函数库分为静态库和动态库。静态库:在程序编译时会被连接到目标代码中,程序运行是则不需要静态库的存在。动态库:在程序编译时不会被连接到目标代码中,而是程序运行时载入的。两者区别:前者是编译连接的,后者是程序运行载入的。二、静态库使用1.1.创建所需要的文件根据学习目标,我们创建三个文件main1.csub1.h
2021-10-10 15:56:55
72
原创 基于MDK创建纯汇编语言的STM32工程
文章目录一、新建工程二、配置环境2.1 选择设备2.2 选择运行环境2.3 添加源文件三、测试代码3.1 源码3.2 仿真器设置3.3 编译调试四、 参考资料总结一、新建工程双击打开MDK5.26,启动界面如下所示;在菜单栏找到新建工程 Project然后选择 New uVision Project…在弹出的窗口分别设置;1.设置项目工程的路径;2.设置项目工程的名称,这里使用TEST;3.点击保存;具体如图:二、配置环境2.1 选择设备设置工程的目标环境,本文基于STM32
2021-09-23 21:02:28
111
原创 Ubuntu中进行的C语言测试
Ubuntu中进行的C语言测试文章目录简单编写hello world一、简单编写主函数1.使用代码2.运行效果运行效果:总结简单编写hello world要求: 在Ubuntu系统下用C语言编写一个简单的输出 hello word 的程序,并编译有、运行之;一、简单编写主函数要求:请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果
2021-09-11 20:48:43
312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人