- 博客(24)
- 收藏
- 关注
原创 基于片内Flash的提示音播放程序
1)实验数据准备:用Adobe audition或goldwave等音频编辑软件录制“您好欢迎光临!”的几秒钟的声音(8khz采样、8bit量化编码的单声道wav格式),确保音频数据尽量小(最大不超64KB)。然后编程将其分批次写入stm32f103c8t6芯片内部flash区域。2)数字音频还原播放任务:编程读取此段音频,分别通过 (a)stm32f103c8t6自带的DAC通道,转换为模拟音频进行播放,并用示波器观察波形,用耳机/喇叭收听,评判音乐还原效果;(b)外接的PCM音频播放模块(PCM51.
2021-12-31 17:56:55 3172
原创 STM32F103对SD卡的数据读取(fat文件模式)
掌握SD卡协议原理,用STM32F103完成对SD卡的数据读取(fat文件模式)。一、cube配置勾选User-defined(勾选后默认配置不变)SYS配置GPIO配置SPI1配置USART1配置Clock Configuration配置修改堆栈大小为0x1400找到创立的工程文件夹,移植此文件到自己的路径下二、代码修改打开刚刚建立的工程修改user_diskio.c函数添加头文件#include “diskio.h” /* Declarations .
2021-12-21 22:12:49 500
原创 Altium Designer 18 原理图绘制
掌握电路原理图绘制。安装Altium Designer 18,学习使用Altium Designer绘制一个stm32最小系统的电路原理图,并在此基础上完成STM32+SD卡 的系统原理图设计。(该系统的PCB图的绘制不做要求,凭个人兴趣选做)标题...
2021-12-19 17:14:59 1976
原创 Clion2021实现stm32F103点亮LED
一、CLion 介绍Clion 是一款专门开发 C 以及 C++ 所设计的跨平台的 IDE。它是以 IntelliJ 为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的 IDE 帮助开发人员在 Linux、OSX 和 Windows 上来开发 C/C++ ,同时它还能使用智能编辑器来提高代码质量、自动代码重构并且深度整合 Cmake 编译系统,从而提高开发人员的工作效率。CLion 支持 GCC、clang、MinGW、Cygwin 编译器以及 GDB 调试器。提供对 Cmake 支持
2021-12-15 19:18:54 441
原创 Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的学习
一、任务要求编写一个C程序,重温全局变量、局部变量、堆、栈等概念,在Ubuntu(x86)系统和STM32(Keil)中分别进行编程、验证(STM32 通过串口printf 信息到上位机串口助手) 。归纳出Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址,进行对比分析。二、概念栈区(stack)由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。它与数据结构
2021-12-15 14:05:25 174
原创 使用Keil虚拟仿真逻辑仪和 真实逻辑仪(SaleaeLogic16)抓取LED输出电平和串口通信的波形
在上个博客中,已经创建好工程,这次主要观察波形1、使用 Keil 的仿真示波器逻辑分析引脚变化1.调试前配置打开 keil 代码工程这里的过程代码用的是上篇文章中实现三个任务的工程文件。调试前配置① 在 MDK-ARM 文件夹下创建一个 TXT 文件,将下面的内容添加进去。map 0x40000000, 0x40007FFF read write // APB1map 0x40010000, 0x400157FF read write // APB2map 0x40020000, 0x.
2021-12-02 22:52:14 278
原创 学习嵌入式实时操作系统uc/OS系统移植
一、实验要求学习嵌入式实时操作系统(RTOS),以uc/OS-III为例,将其移植到stm32F103上,构建至少3个任务(task):其中两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制;另外一个task以2s周期通过串口发送“hello uc/OS! 欢迎来到RTOS多任务环境!”。记录详细的移植过程。二、使用CubeMX建立STM32F103C8T6HAL库创建工程配置RCC配置SYS设置PC13为GPIO_Output用于点亮LED灯设置串口USART1设置工
2021-11-30 22:49:34 644
原创 基于I2C/SPI总线的温湿度采集与OLED显示
一、学习任务理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:显示自己的学号和姓名;显示AHT20的温度和湿度;上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者一段歌词或诗词(最好使用硬件刷屏模式)。二、实验须知(一)SPI简介SPI是串行外设接口(Serial Peripheral Interface)的缩写,是由 Motorola 公司提出的一种高速的,全双工,同步的通信总线,被广泛地使用
2021-11-20 16:12:53 559
原创 stm32通过I2C接口实现温湿度(AHT20)的采集
一、了解I2C总线协议1.什么是I2C协议I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。2.I2C 协议的物理层和协议层①物理层I2C是一个支持设备的总线。可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。对于I2C 总线,只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时
2021-11-20 12:13:21 131
原创 点阵汉字的字模读取与显示
点阵汉字的字模读取与显示一、实验内容学习理解汉字的机内码、区位码编码规则和字形数据存储格式。在Ubuntu下用C/C++(或python) 调用opencv库编程显示一张图片,并打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点阵字形字库(压缩包中的文件HZKf2424.hz)中对应字符的字形数据,将名字和学号叠加显示在此图片右下位置。二、汉字点阵字库原理1.汉字编码1. 区位码在国标 GD2312—80 中规定,所有
2021-11-17 23:54:31 586
原创 串口传输文件练习
串口连接传输文件一、实验要求串口传输文件的练习。将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。二、实验过程1.需要两台电脑,电脑上都下载好串口调试助手,方便接收和发送显示文件。两个串口线连接这两台电脑。打开串口调试助手,开始实验。2.打开串口调试助手,选择文件,设置波特率为115200,点击发
2021-11-17 22:06:10 142
原创 STM32中断与DMA通信编程
这里写自定义通过后目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用
2021-11-05 22:49:29 481
原创 STM32最小核心板F103串口通信USART
1、USART介绍通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART(Universal Asynchronous Receiver and Transmitter),它是在 USART 基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 UA
2021-10-28 23:06:03 1953
原创 搭建STM32开发环境——STM32CubeMX,Keil5实现流水灯
一、实验工具STMCubeMX,用来生成代码 keil5,编译代码生成hex文件 flymcu,将代码烧录到板子里 板子为STM32103C8二、STM32CUBEMX生成代码1.安装完成之后,点击help,下载依赖包2.选择自己的芯片,选上前面的复选框就可以下载了,前面是绿色就代表已经下载好了3.包下载好之后就可以了,后面回到home界面,创建新项目4.在part name那输入自己的芯片,这里以STMC8T6举例,然后在中间回出现一列信息,点击之后再点击star.
2021-10-26 23:18:49 1619 1
原创 STM32F103LED流水灯
一、STM32F103C8T6简介STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。所有的资料都可以在野火官网上下载野火资料下载中心二、点灯点亮LED灯,需要用到GPIO端口。为了点亮LED灯,需要三个步骤:打开GPIO口的时钟 初始化GPIO口(选择推挽输出) 设置低电平(一)打开时钟GPIO的地址: 时钟的地址:...
2021-10-23 22:49:07 1164
原创 STM32的C与汇编语言混合编程
目录一、在keil5里面利用C语言调用汇编函数1.建立新工程2.编辑代码C语言代码编辑:汇编语言编辑3.编译调试二、改写汇编程序1.C程序改写2.汇编程序改写3.编译调试三、在汇编程序中调用C语言中的函数一、在keil5里面利用C语言调用汇编函数1.建立新工程首先点击Project里面的 New uVision Project...然后输入文件名,点击保存即可。选用芯片然后进行配置(如图):2.编辑代码首先在左上...
2021-10-12 14:52:07 568
原创 Ubuntu18.04下OpenCV3.4.11的安装及使用示例
一、认识 OpenCV开源计算机视觉(OpenCV)是一个主要针对实时计算机视觉的编程函数库。OpenCV的应用领域包括:2D和3D功能工具包运动估计面部识别系统手势识别人机交互移动机器人动作理解物体识别分割和识别实体影像立体视觉:来自两个摄像机的深度感知运动中的结构(SFM)运动跟踪增强现实为了支持上述一些领域,OpenCV包括一个统计机器学习库,其中包含:提升(Boosting)决策树学习梯度提升树期望最大化算法k最近邻算法朴素贝叶斯分类器人工神经网络
2021-10-11 20:55:36 253
原创 gcc生成静态库.a和动态库.so
一、用gcc生成静态库和动态库函数库分为静态库和动态库。静态库 在程序编译时会被连接到目标代码中,程序运行是则不需要静态库的存在。 动态库 在程序编译时不会被连接到目标代码中,而是程序运行时载入的。 两者区别:前者是编译连接的,后者是程序运行载入的。(一)hello实例使用库1.准备过程(1). 创建一个目录(2). hello代码hello.hhello.cmain.c(3). gcc编译得到.o文件...
2021-10-10 17:04:10 65
原创 基于MDK创建纯汇编语言的STM32工程
目录一、创建一个新工程二、添加文件三、汇编程序四、分析编译生成的Hex文件一、创建一个新工程1.创建工程①点击Project,选择New uvison Project②选择文件保存的路径以及文件的名称2.环境配置①选择对应的芯片,本文章采用的STM32F103RC②运行环境选择,主要是CMSIS下选择CORE;Device下Startup,其中包含了启动文件自此,一个工程的建立就算完成了。二、添加文件1.鼠标右键单击Source ...
2021-09-24 23:15:48 83
原创 在Ubuntu系统下的编译学习
请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。1) 请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;main1.csub1.csub1.h运行结果:2...
2021-09-14 18:57:00 430
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人