- 博客(24)
- 收藏
- 关注
原创 Web学习之HTML
文章目录一. 什么是HMTL二. HTML文档结构(1)HTML的基本标签(2)小试一手(3)元素的属性(4)HTML 超链接(5)图片及文件路径 img(6)表格 Table(7)列表 List(8)表单 Form(9)HTML区块和内联元素(10)其它三. 总结四. 参考资料开发软件:VS Code安装后,点击界面左侧第五个图标,推荐安装插件:Auto Close Tag(自动补全结束标签)、Auto Rename Tag(自动同步修改前后标签名)、Code Runner(快速运行代码)、Inte
2022-05-20 20:16:54 1069
原创 STM32之音频数据的Flash读取与DAC播放
文章目录一. STM32103之内部Flash原理1. Flash介绍2. Flash的组成3. STM32内部框架图二. SD卡的读写1. 实验过程2. 查看hello.txt3. 从SD卡里读出数据三. Flash地址空间的数据读取1. Flash写入流程2. 配置STM32CubeMX3. 修改代码4. 设置ST-Link5. Keil配置6. 调试程序四. 实例——基于片内Flash的提示音播放程序1. DAC介绍2. 使用DAC输出周期2KHZ的正弦波3. 数字音频还原播放五. 总结六. 参考资
2022-01-01 02:57:58 2376 1
原创 Altium Designer绘制stm32最小系统原理图及stm32+SD卡绘制
文章目录一. Altium Designer 18的下载与安装1. 下载AD2. 安装AD3. 配置AD环境二. 绘制STM32最小系统的原理图1. 新建工程2. 效果图三. 设计STM32+SD卡的系统原理图四. 总结五. 参考资料一. Altium Designer 18的下载与安装Altium Designer是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性
2021-12-23 22:01:37 812 1
原创 STM32F103之完成对SD卡的数据读取
文章目录一. 认识SD卡1. 介绍SD卡2. SD卡的物理结构3. SD卡寄存器4. SD卡模式5. 初始化SD卡过程6. SD卡读取数据二. 实验操作——对SD卡进行数据读取1. 硬件准备2. 新建工程3. 代码部分4. 烧录程序5. 实验结果分析三. 总结四. 参考资料一. 认识SD卡1. 介绍SD卡SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,被广泛地于便携式装置上使用,例如数码相机、平板电脑和多媒体播放器等。控制器对SD卡进行读写通
2021-12-23 19:48:06 1159
原创 Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配问题
文章目录一. C程序内存分配问题1. 全局变量、局部变量、堆、栈的概念2. C程序的内存分配二. 在Ubuntu(x86)系统和STM32(Keil)中分别进行编程1. 基于Ubuntu的变量地址分配的验证2. 基于STM32(Keil)的变量地址分配的验证3. 烧录程序4. 串口发送数据三. 归纳和对比分析四. 总结五. 参考资料一. C程序内存分配问题1. 全局变量、局部变量、堆、栈的概念全局变量在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,
2021-12-21 21:25:11 726
原创 基于CLion实现stm32F103点亮LED
文章目录一. 安装环境1. 下载安装Clion2. 安装arm-none-eabi-gcc3. 安装MinGW4. 安装OpenOCD5. 添加系统环境变量二. 配置CLion1. 新建一个工程2. 配置Embedded Development3. 配置 toolchains4. 配置Cmake三. 用CLion实现点亮 LED四. 在CLion点灯五. 烧录运行1. 烧录程序2. 运行结果六. 总结七. 参考文献一. 安装环境CLion 是一款现代化 C/C++ 集成开发环境,由 Jetbrain公
2021-12-14 20:48:01 404
原创 基于stm32移植uC/OS-III以及使用Keil仿真和逻辑分析仪抓取波形
文章目录一. 认识uC/OS-III二. 将uCOSIII源码移植到STM32F103C8T61. 使用CubeMX建立STM32F103C8T6HAL库2. 准备工作(1)获取uC/OS-III源码(2)移植准备3. 开始移植(1)将uCOS文件添加到项目中(2)为bsp.c和bsp.h添加代码(3)修改main.c文件代码(4)修改其余文件部分代码(5)参数配置4. 运行效果三. 以1s和3s周期对LED等进行点亮灭的控制1. 以1s周期进行控制2. 以3s周期进行控制四. 基于keil仿真波形分析1.
2021-12-04 00:35:54 1412
原创 STM32之基于I2C/SPI总线的温湿度采集与OLED显示
文章目录一.一.使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。解释什么是“软件I2C”和“硬件I2C”?显示温湿度
2021-11-20 23:20:48 4266
原创 基于Ubuntu系统调用opencv——在图片上显示汉字和数字
文章目录一. 用串口实现两台主机间的文件传输二. 调用opencv——在图片上显示汉字和数字(1)认识汉字编码1. 区位码2. 机内码3. 点阵字库结构4. 汉字点阵获取参考文献一. 用串口实现两台主机间的文件传输二. 调用opencv——在图片上显示汉字和数字(1)认识汉字编码为什么有汉字编码?最早的ASCII码只包括了字母、标点符号、特殊字符等127个字符。这些字符对于拉丁语系国家的人使用是足够的,但是对于非拉丁语系国家(如中国、日本等),ASCII码就远远不够了。因此就需要编码来表示大量的汉
2021-11-14 20:40:58 643
原创 两台电脑串口通信实现文件传输
文章目录一. 实验过程1. 准备工作2. 传输文件3. 对比实际传输时间与预算传输时间4. 探究波特率和传输时间之间的关系5. 探究文件大小和传输时间之间的关系二. 总结本文将两台笔记本电脑,借助usb转rs232模块和杜邦线,建立起串口连接。然后用串口助手工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。一. 实验过程1. 准备工作准备两台电脑,两个usb转串口,四根杜邦线下载
2021-11-14 18:30:20 4827
原创 基于STM32的中断及DMA通信
文章目录一. 关于中断的介绍本文使用stm32tubemx和HAL库完成以下任务:用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。采用串口中断方式完成串口通信一. 关于中断的介绍中断是当CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理,CPU暂停当前的工作,转去处理事件B,当CPU将事件B处理完毕后,再回到事件A中被暂停的地方继续处理事件
2021-11-03 20:26:13 1041
原创 STM32串口通信以及USB/TTL转232工作原理
文章目录一. 串口通信协议1. 简介2. RS-232 标准3. RS232电平与TTL电平的区别4. USB转串口工作原理一. 串口通信协议1. 简介串口通信:指串口按位(bit)发送和接收字节,是一种设备间非常常用的串行通讯方式。串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议:指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。2.
2021-10-27 10:19:32 20133 1
原创 STM32CubeMX+Keil使用HAL库点灯
文章目录一. CubeMX的安装一. CubeMX的安装STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者,允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32全系列芯片安装CubeMx需要:JRE (Java Runtime Environment)、 STM32CubeMX、HAL库1. 安装JRE官网:https://www.java.co
2021-10-27 08:29:09 1019 1
原创 STM32F103寄存器方式点亮LED
文章目录一. STM32F103系列芯片的映射原理什么是寄存器?(1)地址映射(2)寄存器映射二. GPIO端口的初始化设置步骤(1)时钟配置(2)输入输出模式设置(3)最大速率设置一. STM32F103系列芯片的映射原理什么是寄存器?寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。(1)地址映射为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址的过程。芯片外接外部RAM和外部ROM的时候,RAM和
2021-10-24 18:22:44 364
原创 Keil5下的STM32的C与汇编语言混合编程
本文内容:修改代码,要求将原汇编语言 Init_1函数的类型改为 int Init_1(init),此函数功能修改为传入一个整型数x,函数运行后返回整型数 x+100。 请编程实现,并仿真跟踪调试;如果要求在汇编函数中调用一个C语言写的函数,应该如何修改汇编代码?一. 项目创建打开Keil arm,...
2021-10-14 00:50:47 1259
原创 Ubuntu下OpenCV的安装及使用示例
文章目录一. 认识OpenCV二. 安装OpenCV(1)OpenCV安装包(2)解压安装包(3)使用cmake安装opencv三. 示例(1)打开图片(2)打开摄像头压缩视频四. 总结五. 参考文献每一个程序背后都站着一堆优秀的代码库。 通过学习opencv图像库编程,了解如何借助第三方库函数完成一个综合程序设计。学了Opencv,妈妈再也不用担心你不会图像编程啦!一. 认识OpenCVOpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Wi
2021-10-13 19:49:00 987
原创 GCC编译背后的故事以及ELF文件的介绍
文章目录一. gcc背后的战友们1. gcc的介绍2. Binutils——战友一3. C运行库——战友二二. gcc的详细编译过程1. 编写代码2. 编译过程2.1 预处理2.2 编译为汇编语言2.3 汇编2.4 链接(连接)补充(1)多个程序文件的编译(2)检错(3)库文件连接三.ELF文件的分析四. 总结五. 参考文献一. gcc背后的战友们1. gcc的介绍GCC(GNU C Compiler)是编译工具,经过了这么多年的发展,GCC 已经不仅仅能支持 C语言;它现在还支持 Ada 语言、C
2021-10-12 09:39:38 530
原创 Linux中gcc创建与使用静态库和动态库
一.关于库的定义1. 库库是写好的,现有的,成熟的,可以复用的代码,本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库分为静态库和动态库。2. 静态库(.a)静态库在程序编译时会被连接到目标代码中去,与汇编生成的目标文件.o一起链接打包到可执行文件中,因此程序运行时不再需要该静态库一个静态库可以看成是一组目标文件(.o/.obj文件)的集合,即很多目标文件经过压缩打包后形成的一个文件3. 动态库(.so)动态库在程序编译时并不会被连接到目标代码中,
2021-10-11 15:25:12 780
原创 基于Keil5创建STM32汇编语言工程
1.新建工程双击打开Keil5点击菜单栏的project,选择New uVision Project,在弹出的窗口中选择路径并设置工程名称,然后保存选择设备STM32F103C82.选择运行环境CMSIS下选择COREDevice下选择Startup3.添加源文件鼠标右键单击 Source Group 1,选择 Add New Item to Group选择 Asm File (.s) ,创建汇编文件设置源文件名称,并保存4.编写代码5.仿真器设置用汇编语言编
2021-09-30 16:45:35 1623
原创 在Ubuntu系统下使用gcc和Makefile编译程序
本文目的是在Ubuntu系统下使用gcc命令行和Makefile方式编译C程序,与Windows系统下编写的程序进行对比。
2021-09-14 20:43:09 1021 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人