嵌入式开发
文章平均质量分 80
醉意丶千层梦
这个作者很懒,什么都没留下…
展开
-
基于树莓派的嵌入式Linux之简单入门代码
可以在Windows下编写好代码后通过软件或者命令等方式把文件直接上传到linux上代码如下原创 2022-06-22 11:32:21 · 728 阅读 · 0 评论 -
STM32F407ZET6音乐播放器
文章目录一、主要功能二、flash读写1.读flash2.写flash3.获取wav格式音频数据4.操作三、播放音频1.原理2.播放“欢迎光临”提示音3.播放SD卡内的音频文件读取SD信息以及控制播放音乐播放wav格式音频四、红外遥控1.原理2.捕获红外遥控五、源代码一、主要功能SD 卡模块存储至少 5 首以上音乐文件(wav 格式);片内 Flash 存储 1-2 句短提示音(5-6 秒长度),比如“xxx 的音乐播放器欢迎你!”、“SD 文件找不到!”;最小系统板上电后自动查找读取 SD 卡原创 2022-01-12 23:07:17 · 4632 阅读 · 5 评论 -
STM32F407ZE基于RT-Thread和ZigBee实现多传感器检测以及数据上传到oneNet
文章目录一、RT-Thread1.简介2.使用声明任务线程、任务栈大小、任务函数创建线程以及开启线程调度定义任务函数二、ZigBee1.简介2.使用三、esp8266WiFi模块四、传感器检测MQ-2烟雾传感器特点读取光敏电阻特点读取火焰传感器特点读取五、效果一、RT-Thread1.简介RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器原创 2022-01-12 16:31:22 · 3053 阅读 · 0 评论 -
STM32F103C8基于Modbus协议读取温湿度
文章目录一、任务二、代码1.通过CubeMX配置stm322.主要代码重定向输出串口一添加中断处理main.c三、效果四、总结一、任务stm32f103通过串口二向485总线轮询发送问答帧访问所有modbus温湿度传感器模块,并且把得到的应答帧进行解析,得到对应的温湿度的值,再通过串口一发送至PC端。二、代码1.通过CubeMX配置stm32配置RCC配置时钟配置串口二波特率4800配置串口二DMA配置串口一配置中断2.主要代码重定向输出串口一usart.c#incl原创 2022-01-12 16:07:56 · 5892 阅读 · 3 评论 -
AltiumDesigner绘制STM32F103C8T6最小系统电路原理图
文章目录一、创建项目1.新建空项目2.添加新的PCB LIbrary和Schematic Library二、下载STM32F103C8T6官方文档1.2.3.三、1.Tools-IPC COmpliant Footprint Wizard2.3.4.参考文档设置对应的值5.finsh四、1.一、创建项目1.新建空项目2.添加新的PCB LIbrary和Schematic Library二、下载STM32F103C8T6官方文档1.2.3.三、1.Tools-IPC COm原创 2021-12-25 19:56:13 · 5780 阅读 · 0 评论 -
STM32F103基于W5500实现Modbus简单TCP通信
文章目录一、Modbus/TCP协议1.查询报文2.响应报文二、从机代码1.初始化从机网络2.简单响应函数3.main函数循环等待连接三、效果四、总结一、Modbus/TCP协议1.查询报文00 6D 00 00 00 06 01 03 00 00 00 0100 6D 查询编号00 00 协议00 06 数据包长度01 设备编号03 功能码00 00 起始地址00 01 查询寄存器个数2.响应报文00 6D 00 00 00 05 01 03 02 00 1700 6D 查询编号原创 2021-12-14 15:25:53 · 14079 阅读 · 4 评论 -
STM32F103C8基于RT-Thread实现简单多任务
文章目录一、RT-Thread二、CubeMX移植三、简单demo四、总结五、参考一、RT-Thread参考官网RT-Thread Nano 简介二、CubeMX移植参考官方文档基于 CubeMX 移植 RT-Thread Nano注意:1.需要初始化USART1且需要修改USART2位USART12.取消注释#include "finsh_config.h"的注释三、简单demo创建两个线程线程一的灯500ms闪烁一次线程二的灯1000ms闪烁一次其中main函数在这里也是其中的原创 2021-12-11 18:28:20 · 2011 阅读 · 0 评论 -
STM32F103基于RTC实现简单日历
文章目录一、 RTC1.定义:2.应用3.应用领域4.特点二、CubeMX创建项目1.配置RCC2.配置RTC3.配置串口4.配置时钟5.配置项目三、RTC操作1.HAL库RTC相关操作函数2.读取RTC初始日期定义日期时间对象获取日期和时间并输出结果3.输出当前时间初始化日期和时间获取日期和时间并输出结果四、总结五、参考六、源码一、 RTC1.定义:RTC的英文全称是Real-Time Clock,翻译过来是实时时钟芯片。 RTC芯片是一种能提供日历/时钟(世纪、年、月、时、分、秒)及数据存储等功能原创 2021-11-29 21:33:53 · 3962 阅读 · 0 评论 -
STM32F103基于uCOS实现多任务
文章目录一、项目创建1.配置GPIO2.配置RTC3.配置USART14.配置RCC5.配置时钟6.配置项目二、usOS移植三、创建多任务1.定义相关变量以及任务函数2.定义相关任务函数3.创建任务4.最终效果四、总结五、参考六、源码一、项目创建1.配置GPIO2.配置RTC3.配置USART14.配置RCC5.配置时钟6.配置项目二、usOS移植参考文章STM32F103C8T6移植uC/OS-III基于HAL库超完整详细过程三、创建多任务1.定义相关变量以及任务函数/原创 2021-11-29 19:54:06 · 6542 阅读 · 2 评论 -
STM32F103基于spi实现OLED显示
文章目录一、原理二、实现1.显示中文2.滚动显示3.显示字符串4.读取温湿度5.显示温湿度三、结果1.开机显示欢迎信息2.循环读取温湿度以及滚动显示我的id四、总结五、参考六、源码1.github2.gitee一、原理SPI的定义SPI(Serial Peripheral Interface)就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 s原创 2021-11-20 15:47:18 · 9628 阅读 · 5 评论 -
STM32F103基于I2C协议的AHT20温湿度传感器的数据采集
文章目录一、原理1.I2C2.软件I2C3.硬件I2C二、实现1.配置2.代码三、结果四、总结五、参考六、源码githubgitee一、原理1.I2CI2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从原创 2021-11-20 14:33:32 · 1710 阅读 · 1 评论 -
通过串口发送图片
文章目录一、要求二、接线三、结果四、总结五、参考一、要求将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将A笔记本上的一张图片(大约1M)通过串口发送给B笔记本。二、接线A电脑三、结果四、总结五、参考...原创 2021-11-08 21:11:35 · 5729 阅读 · 0 评论 -
基于HAL库实现DMA串口通信
文章目录前言一、DMA二、通过CubeMX创建项目1.设置RCC2.设置USART13.创建项目三、个人代码四、效果五、参考前言软件版本: STM32CubeMX:6.30 KEIl:5.31 FlyMcu:0.188 SSCOM: 5.13.1硬件: STM32F103C8T一、DMADMA,全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数原创 2021-10-31 15:01:34 · 2809 阅读 · 0 评论 -
HAL库中断方式进行串口通信
文章目录前言一、通过CubeMX配置项目1.设置RCC2.设置SYS3.设置USART4.设置NVIC5.创建项目二、在keil配置代码1.打开通过CubeMX生成的项目2.在main函数前定义全局变量3.在main函数中设置接收中断4.main函数中的while循环里面添加传输代码5.在main函数下面重写中断处理函数6.main函数全部代码7.编译并烧录三、效果四、参考前言软件版本: STM32CubeMX:6.30 KEIl:5.31 FlyMcu:0.188 SSCOM原创 2021-10-30 20:10:01 · 6053 阅读 · 3 评论 -
stm32外部中断模式控制灯亮灭
文章目录前言一丶通过STMCube配置项目1.引脚配置如图2.配置EXIT3.配置SYS4.配置GPIO5.代码创建出勾上这个6.创建项目二、通过KEil配置代码1.打开生成的项目,找到stm32f1xx_it.c2.找到EXTI9_5_IRQHandler这个函数,选中HAL_GPIO_EXTI_IRQHandler这个语句按F12跳到该函数3.往下找到HAL_GPIO_EXTI_Callback这个函数4.编译生成hex文件5.通过FlyMcu进行烧录三、效果四、参考前言软件版本:STM32Cub原创 2021-10-28 22:12:00 · 4937 阅读 · 0 评论 -
基于HAL库实现stm32简单串口通信
文章目录一、原理1.USERT介绍2.USERT功能3.USERT框图二、项目1.通过stm32cubeMX创建keil项目三、效果四、总结五、参考一、原理1.USERT介绍通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/R原创 2021-10-20 22:46:22 · 2885 阅读 · 1 评论 -
基于HAL库实现流水灯
文章目录一、项目创建二、使用一、项目创建1.在stm32cube选择对应型号单片机,本次实验采用stm32f103c8T6型号。2.选择要用到引脚,本次实验使用A4、B5、C14引脚。点击对应的引脚选择GPIO_output最终效果3.配置系统调试接口,选择Serial Wire4.配置GPIOGPIO output level:有low和high两种选择,一般选择lowGPIO mode:推挽输出和开漏输出两者模式,两者模式的区别在于推挽输出中1代表VCC,0表示GND;开原创 2021-10-19 14:57:34 · 1154 阅读 · 0 评论 -
stm32寄存器实现流水灯
文章目录一、GPIO端口初始化1.时钟配置2.输入输出模式和输出速率设置代码实现1.c语言2.汇编代码效果一、GPIO端口初始化1.时钟配置本次实验采用GPIOA、B、C三个端口。该三个端口都属于APB2总线找到时钟使能寄存器映射基地址找到端口偏移地址以及对应端口所在位置使能对应端口时钟//----------------APB2使能时钟寄存器 ---------------------#define RCC_APB2ENR *((unsigned volatile int原创 2021-10-17 18:25:06 · 4138 阅读 · 2 评论 -
Keil下STM32的C与汇编语言混合编程
文章目录c语言调用汇编语言修改init_1函数功能再次调用c语言调用汇编语言在main.c中调用在test.s中定义的init_1函数,并通过调试的方式跟踪寄存器的内容来验证。值得注意的是,在ARM中,寄存器R0~R3保存的是函数的参数,当参数大于4个后,多余的参数将会被压入栈中。而返回结果会被保存在R0当中。main.c代码#include<stdio.h>extern void Init_1(void);int main(){ Init_1(); return原创 2021-10-10 19:05:57 · 160 阅读 · 0 评论 -
基于OpenCV3.4的图像编程
文章目录安装OpenCV安装OpenCV国内下载地址: https://www.bzblog.online/wordpress/index.php/2020/03/09/opencvdownload/原创 2021-10-07 14:14:42 · 138 阅读 · 0 评论 -
静态库.a与.so库文件的生成与使用
文章目录准备工作创建文件编译文件静态库的生成和使用生成静态库使用静态库动态库的生成和使用生成动态库使用动态库总结准备工作创建文件需要用到main.c、x2x.h、x2x.c、x2y.h、x2y.c这几个文件。在Linux中使用nano+文件名的形式创建对应文件并同时进行代码的写入。main.c代码#include "x2x.h"#include "x2y.h"void main(){ int a=1,b=2; x2x(a,b); x2y(a,b原创 2021-10-05 17:42:31 · 234 阅读 · 0 评论 -
基于MDK创建STM32工程以及HEX文件格式简单说明
目录一、创建一个简单工程二、仿真测试三、HEX文件格式说明一、创建一个简单工程1.点击菜单栏的Project再点击new uVision Projec2.输入项目名称后点保存3.选择合适的芯片后点OK4.注意勾选这两个地方,最后点击OK 5.右击Source Group1,然后选择Add New item6.选择Asm,然后输入名称后点击Add7.把代码粘贴进新创的.s文件代码如下 AREA MYDATA, DATA AREA MYCODE, CODE ENTRY原创 2021-09-27 19:39:04 · 596 阅读 · 0 评论