![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式系统
文章平均质量分 88
缔宇diyu
知其然、知其所以然、知其所以必然。
展开
-
基于stm32f103c8t6的flash的数据读取以及提示音播放程序
课程任务要求,条件不足无法验证后续操作。原创 2021-12-31 13:23:04 · 3974 阅读 · 0 评论 -
STM32F103通过SPI完成对SD卡的数据读取(fat文件模式)
一. SD卡协议原理SD 卡系统定义了两种通信协议:SD 和 SPI 主机系统可以选择任意一种。当收到 reset 命令的时候,SD 卡通过主机的信息来决定 使用何种模式,并且之后的通讯都会使用相同的模式。SD 卡的 SPI 实现使用了 SD 模式相同的命令。SD 卡 SPI 接口同市场上现有的 SPI 主 机兼容。同其他 SPI 设备一样,SD 卡的 SPI 信道有以下 4 个信号:CS: 主机到卡的片选(chip select)信号CLK: 主机到卡的时钟信号DataIn: 主机到卡的数据原创 2021-12-20 21:58:18 · 4121 阅读 · 4 评论 -
Altium Designer绘制stm32+SD卡原理图
一. 绘制STM32原理图上一篇文章已经写过: Altium Designer绘制stm32最小系统原理图(详细完整版)_diyu-CSDN博客原理图如下:二. 绘制SD卡原理图此次绘制的SD卡为 micro SD卡模块 SPI接口Mirco SD 卡模块的接口如下图所示:控制接口:共 6 个引脚(GND、VCC、MISO、MOSI、SCK、CS),GND 为地,VCC 为供 电电源,MISO、MOSI、SCK 为 SPI 总线,CS 为片选信号脚;3.3V 稳压电路:LDO 稳压输出的原创 2021-12-20 17:02:36 · 4049 阅读 · 1 评论 -
Altium Designer绘制stm32最小系统原理图
详细完整版。从安装到练习绘制原理图、到正式绘制STM32原理图,以及补充一些设置、快捷键以及快速的操作。从零到掌握足够了。原创 2021-12-20 00:36:33 · 11440 阅读 · 7 评论 -
使用CLion+stm32cubmx替代keil实现stm32F103点亮 LED
文章目录一. 环境(windows下)二. 使用clion创建工程1. 新建工程2. 选择使用stmcubmx创建工程3. 编译器配置4. 打开stm32cubmx5. stm32cubmx创建自己的工程6. 配置 CLion 工程文件7. 添加代码8. 编译代码9. 番外三. 最终效果四. 总结五. 参考链接一. 环境(windows下)clion:CLion: A Cross-Platform IDE for C and C++ by JetBrainsCLion 是 JetBrains 推出原创 2021-12-15 18:08:22 · 1673 阅读 · 1 评论 -
Ubuntu、stm32下的C程序各变量的分配地址分析
文章目录一、C程序的内存分配1. 栈区(stack)2. 堆区(heap)3. 全局区(静态区)3.1 .bss段3.2 .data段4. 常量区5. 代码区二. 栈区、堆区等区存放介质(RAM、ROM、flash)1. RAM2. ROM3. Flash Memory4. 不同数据的存放位置三. ubuntu、stm32(keil)下查看堆、栈、全局、局部等变量的分配地址并对比1. ubuntu下2. keil下四. 总结五. 参考链接一、C程序的内存分配如图内存高地址栈区堆区原创 2021-12-15 18:04:26 · 1999 阅读 · 0 评论 -
为什么重写printf函数没有用?
2021/12/14。最新解决重写printf函数没用的问题,原因是没用勾选微库(Use MicroLlB)原创 2021-12-14 22:19:29 · 1380 阅读 · 1 评论 -
Keil虚拟仿真逻辑仪和真实逻辑仪分析串口波形
文章目录一、使用软件 & 硬件二、keil虚拟仿真逻辑仪三. 使用真实逻辑仪查看四. 总结四. 总结一、使用软件 & 硬件keil5,logic1.1.30和真实逻辑仪(SaleaeLogic16)二、keil虚拟仿真逻辑仪打开一个项目,什么项目都可以,只要串口向上位机发送信息即可。勾选Use Simulator 使用软件调试。更改 Dialog DLL 以及 ParameterDialog DLL 设置为 DARMSTM.DLL 和 TARMSTM.DLLPa原创 2021-12-04 19:54:23 · 1211 阅读 · 0 评论 -
stm32f103移植ucosIII系统
文章目录一. 使用stmcubemax创建工程二. 准备uCOSIII源码三. 移植前准备1. 在ucos源码中新建两个文件夹2. 在uC-BSP文件夹下新建bsp.c和bsp.h文件3. 在uC-CONFIG文件夹添加文件4. 将uCOS源码文件复制到工程的MDK-ARM文件夹下四. 开始移植1.将uCOS文件添加到项目2. 代码改动2.1 启动文件2.2 app_cfg.h2.3 includes.h2.4 bsp.c 和 bsp.h2.5 main.c2.6 lib_cfg.h2.7 重写printf原创 2021-12-01 22:59:11 · 1569 阅读 · 3 评论 -
stm32基于SPI通信实现OLED显示
stm32通过OLED显示屏显示学号姓名、读取AHT20温度以及滚动显示。原创 2021-11-25 10:18:59 · 2223 阅读 · 0 评论 -
OLED显示屏滚动函数编写
根据OLED内置SSD1306芯片手册编写:SSD1780 (lcdwiki.com)示例编写水平滚动函数 以及 水平垂直滚动函数,垂直滚动函数是没有的。原创 2021-11-25 00:07:27 · 1636 阅读 · 0 评论 -
stm32通过I2C接口实现温湿度(AHT20)的采集
题目:用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。环境:stmf103c8t6核心板keil5 MDKAHT20(温湿度传感器模块)USB转TTL模块面包板,以及若干杜邦线一. I2C协议I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地 使用在系统内多个集成电路.原创 2021-11-19 17:04:44 · 4007 阅读 · 0 评论 -
opencv在图片上添加中文汉字(c++以及python)
windows以及linux 系统均适用。采用C++以及python实现。C++是采用替换原图的像素点来实现的‘python是采用将opencv格式转为PIL格式实现的。原创 2021-11-14 12:31:40 · 9447 阅读 · 0 评论 -
串口实现PC之间传输文件
题目:串口传输文件的练习。将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。文章目录一. 环境二. 接线三. 传输文件1. 使用波特率为115200传输文件2. 使用波特率为460800传输文件四. 总结一. 环境两台电脑两个usb转TTL模块若干杜邦线二. 接线RXD接TXD,TX..原创 2021-11-13 16:50:07 · 1653 阅读 · 0 评论 -
STM32CubeMX实现串口DMA中断通信
文章目录一. 环境二. 使用STM32CubeMX三. USART DMA中断通信1. UART函数库介绍2. 编写代码3. 最终效果四. 软件调试五. 总结一. 环境硬件:stm32f103c8t6 核心板软件:STM32CubeMX 6.3.0软件:keil5 mdk二. 使用STM32CubeMX这里与前一篇串口通信文章只在于多了个DMA设置以及开启串口中断使能。STM32CubeMX实现串口通信_diyu-CSDN博客与前一篇串口中断文章只多了个DMA设置。STM32CubeMX原创 2021-11-05 12:05:34 · 3927 阅读 · 2 评论 -
STM32CubeMX实现串口中断通信
文章目录一. 环境二. 使用STM32CubeMX三. USART中断通信1. UART函数库介绍2. 编写代码3.最终效果四. 软件调试五. 总结一. 环境硬件:stm32f103c8t6 核心板软件:STM32CubeMX 6.3.0软件:keil5 mdk二. 使用STM32CubeMX这里与前一篇文章只在于多了个开启串口中断使能。STM32CubeMX实现串口通信_diyu-CSDN博客三. USART中断通信1. UART函数库介绍结构体以及函数定义均在头文件: stm3原创 2021-11-04 22:58:29 · 4740 阅读 · 6 评论 -
STM32CubeMX GPIO中断编程
文章目录一. 环境二. 使用STM32CubeMX1. 安装固件库2. 工程设置3. 添加代码三. 最终效果题目:用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。这里我设置的是开关接低电平时,LED亮灯;接高电平时,LED灭灯一. 环境硬件:stm32f103c8t6 核心板软件:STM32CubeMX 6.3.0软件:keil5 mdk二. 使用ST原创 2021-11-04 22:15:03 · 2598 阅读 · 0 评论 -
STM32CubeMX实现串口通信
文章目录一. 环境二. 使用STM32CubeMX1. 安装固件库2. 工程设置三. USART发送数据1. UART函数库介绍2. 发送数据四. 总结一. 环境硬件:stm32f103c8t6 核心板软件:STM32CubeMX 6.3.0软件:keil5 mdk二. 使用STM32CubeMX1. 安装固件库若点击 Manage embedded software packages 后,出现失败,则需要随便点击其它任一选项,进行下载一些文件,比如点击 file->new pr原创 2021-10-27 01:35:42 · 20630 阅读 · 4 评论 -
STM32F103 + STM32CubeMX实现流水灯闪烁
文章目录一. 环境二. 使用STM32CubeMX1. 安装固件库2. 工程设置3. 添加代码三. 使用STLink下载程序四. 总结一. 环境硬件:stm32f103c8t6 核心板软件:STM32CubeMX 6.3.0软件:keil5 mdk这里使用STLink进行下载程序。二. 使用STM32CubeMX1. 安装固件库选择自己开发板的固件库,我这里是f1的。选择版本安装,我这里已经安装过了。2. 工程设置点击 file -> new project 建立工原创 2021-10-26 11:09:36 · 2815 阅读 · 1 评论 -
STM32F103寄存器方式点亮LED流水灯
文章目录一. 硬软件准备1. 硬件2. 软件二. 编程思想1. 创建工程2. 添加文件3. 编写代码4. 编译设置三. 软件调试四. 硬件调试五. 最终效果六. 总结七. 参考资料一. 硬软件准备1. 硬件此次实验使用串口下载的方式。STM32最小系统核心板(STM32F103C8T6)USB转TTL模块 CH340面包板LED灯若干杜邦线(公对公、公对母、母对母)2. 软件keil5 MDKmcuisp 烧录软件CH340驱动二. 编程思想1.原创 2021-10-24 21:02:32 · 2413 阅读 · 0 评论 -
ARM下C语言和汇编语言混合编程
文章目录一. 在C语言中调用汇编语言1. 编写代码2. 调试验证二. 在汇编语言中调用C语言1. 编写代码2. 调试验证关于函数的传递参数以及接受返回值的原理,在另一篇博客: X86与ARM平台下的参数传递机制_diyu-CSDN博客实验环境:keil5 以及 创建工程时选择的设备为ARMCM3一. 在C语言中调用汇编语言1. 编写代码要求:用汇编语言编写函数 ,功能为 传入一个整型数x,函数运行后返回整型数 x+100。并用C语言调用此函数。keil下编写两个文件 func.s 以及 main原创 2021-10-10 16:26:45 · 1034 阅读 · 0 评论 -
X86与ARM平台下的参数传递机制
X86与ARM平台区别参考:一文看懂arm架构和x86架构有什么区别_bleauchat的博客-CSDN博客_arm x861. X86下的参数传递参数传递:(1)32位程序使用栈传递。(2)64位程序根据参数的个数而不同, 当参数1~6个,使用寄存器传递;参数大于6个,多出来的参数使用栈传递。2. ARM下的参数传递AAPCS标准简介AAPCS(ARM Architecture Procedure Call Standard): ARM架构过程调用标准。它规定了一些子程序间调用的基本规.原创 2021-10-08 22:45:41 · 657 阅读 · 0 评论 -
ubuntu18.04下opencv的使用
文章目录一. 图像处理二. 视频处理opencv的安装:ubuntu安装opencv的正确方法_陶陶name-CSDN博客_ubuntu安装opencv官网:在乌本图 18.04 |安装 OpenCV 3.4.4学习开放CV (learnopencv.com)一. 图像处理编写代码创建目录Code,并进入此目录保存或下载一张图片于此目录linux下对图片格式是有要求的。最好不要使用百度下的图片链接,因为图片格式很大可能存在问题,致使在linux系统打不开。因此,建议使用专业原创 2021-10-06 22:04:21 · 752 阅读 · 0 评论 -
GCC常用命令及GCC编译器背后的故事
文章目录一. GCC常用命令1. 简介2. 简单编译2.1 预处理2.2 编译为汇编代码(Compilation)2.3 汇编(Assembly)2.4 连接(Linking)3. 多个程序文件的编译4. 检错5. 库文件连接5.1 编译成可执行文件5.2 链接5.3 强制链接时使用静态链接库二. 放松一下三. GCC 编译器背后的故事1. GCC编译器背后的工具1.1 GCC1.2 Binutils1.3 运行库2. GCC编译及其分析2.1 准备工作2.2 编译过程详解2.2.1 预处理2.2.2 编译原创 2021-10-04 16:51:30 · 361 阅读 · 0 评论 -
gcc下静态库和动态库的生成及使用
文章目录1. 静态库与动态库简介2. 编写程序3. 静态库的生成及使用4. 动态库的生成及使用5. 静态库与动态库生成的可执行文件大小比较1. 静态库与动态库简介gcc详解: GCC编译过程及基本命令总结_天涯明月刀的博客-CSDN博客_gcc编译命令gcc的编译过程分为预处理、编译、汇编、链接。其中链接就是将所有目标文件(.o)与库文件中的函数链接到一起生成可执行文件。且链接分为静态链接和动态链接,静态链接使用的是静态库,动态链接使用的动态库。静态链接是指在编译阶段直接把静态库加入到可执行文原创 2021-10-04 16:29:07 · 990 阅读 · 0 评论 -
keil下汇编程序的调试及hex文件详解
文章目录1. 创建工程并编写汇编程序2. 设置断点并开始调试3. hex文件格式详解1. 创建工程并编写汇编程序编写 test.s 文件 AREA MYDATA, DATA AREA MYCODE, CODE ENTRY EXPORT __main__main MOV R0, #10 MOV R1, #11 MOV R2, #12 MOV R3, #13 ;LDR R0, =func01 BL func01 ;LDR R1, =func02 BL func02原创 2021-09-24 13:11:39 · 2380 阅读 · 0 评论 -
使用gcc以及makefile编译C程序
文章目录一. gcc编译C程序1. ubuntu 18.04下使用gcc编译C程序2. window10下使用gcc编译C程序二. win10下使用编译软件编译C程序三. makefile方式编译C程序四. 总结一. gcc编译C程序gcc详解: GCC编译过程及基本命令总结_天涯明月刀的博客-CSDN博客_gcc编译命令1. ubuntu 18.04下使用gcc编译C程序安装gcc: sudo apt install gcc所有程序皆使用 vim 编写 一般模式下输入 :set nu 显示原创 2021-09-12 01:53:09 · 2787 阅读 · 0 评论