嵌入式系统学习之路
文章平均质量分 82
今天还是没学懂
学无所获是常态
展开
-
嵌入式Linux(树莓派)环境设置及应用
树莓派远程登录操作原创 2022-06-22 21:53:29 · 399 阅读 · 0 评论 -
STM32+W5500网络通信
目录一.理论概述二.TCP数据通信三.STM32+W5500+modbus协议编程四.STM32+W5500的web服务五.参考链接原创 2021-12-28 08:55:58 · 2257 阅读 · 0 评论 -
RT-thread Nano在stm32f103上的移植
目录一.CubeMX添加RT-Thread操作系统组件二.CubeMX新建工程三.创建任务四.参考链接原创 2021-12-26 10:16:58 · 620 阅读 · 0 评论 -
AD原理图设计与Clion源码工具学习
目录一.使用Altium Designer软件完成STM32+W5500的系统电路原理图设计二.使用Clion完成STM32F103点亮LED三.参考链接原创 2021-12-26 09:04:11 · 230 阅读 · 0 评论 -
Keil虚拟仿真逻辑仪和 真实逻辑仪
目录一、Keil仿真二、示波器三、总结四、参考资料一、Keil仿真相关配置:进入调试界面:选择波形分析:添加信号:查看波形RTC时钟:根据波形图可以看出串口以一秒为周期向上位机发送一次数据uCOS:根据波形图可以看出PA5以一秒为周期控制LED灯亮灭,PB1以三秒为周期控制LED灯亮灭,串口以两秒为周期像上位机发送一次数据。在调试uCOS的波形图时遇到了** error 65: access violation at 0xE0001004 : no原创 2021-12-03 15:35:05 · 580 阅读 · 0 评论 -
基于STM32CubeMX(HAL库)制作RTC时钟
目录一、RTC概述二、建立新项目三、修改代码四、烧录运行五、总结六、参考资料一、RTC概述实时时钟的缩写是RTC(Real_Time Clock)。RTC 是集成电路,通常称为时钟芯片。实时时钟芯片是日常生活中应用最为广泛的消费类电子产品之一。它为人们提供精确的实时时间,或者为电子系统提供精确的时间基准,目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。有些时钟芯片为了在主电源掉电时,还可以工作,需要外加电池供电。硬件结构1) 晶振晶振一般叫做晶体谐振器,是一种机电器件,晶振是石英振原创 2021-12-03 10:23:40 · 2022 阅读 · 2 评论 -
STM32F103C8T6移植uCOS基于HAL库
目录一、使用CubeMX建立STM32HAL库二、下载uCOSIII源码三、移植前的准备四、开始移植五、运行结果六、总结七、参考资料一、使用CubeMX建立STM32HAL库配置RCC配置SYS设置串口USART1设置PA5、PB1为GPIO_Output用于点亮LED灯设置工程在main函数中的while循环里添加语句while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3原创 2021-11-30 10:22:36 · 3682 阅读 · 0 评论 -
基于AHT20的温湿度采集并用OLED显示
目录一、实现将温湿度采集数据显示到OLED二、烧录运行结果三、总结四、参考链接本篇博客接上一篇:STM32F103完成基于I2C协议的AHT20温湿度传感器数据采集一、实现将温湿度采集数据显示到OLED首先再上一个Demo的基础上需要在如下目录添加文件重写显示温湿度的函数void read_AHT20(void){ uint8_t i; for(i=0; i<6; i++) { readByte[i]=0; } //------------- I2C_Star原创 2021-11-26 17:10:37 · 333 阅读 · 0 评论 -
0.96寸OLED在STM32f103上实现滚动显示长字符
目录一、OLED屏的滚屏命令二、对需要显示的文字进行取模三、修改程序代码四、烧录运行结果五、总结六、参考文献一、OLED屏的滚屏命令水平左右移OLED_WR_Byte(0x2E,OLED_CMD); //关闭滚动OLED_WR_Byte(0x26,OLED_CMD); //水平向左或者右滚动 26/27OLED_WR_Byte(0x00,OLED_CMD); //虚拟字节OLED_WR_Byte(0x00,OLED_CMD); //起始原创 2021-11-26 15:52:59 · 3914 阅读 · 0 评论 -
基于STM32的0.96寸OLED显示屏显示数据
目录原创 2021-11-26 14:55:35 · 594 阅读 · 0 评论 -
STM32F103完成基于I2C协议的AHT20温湿度传感器数据采集
目录原创 2021-11-24 15:40:45 · 3107 阅读 · 0 评论 -
两台电脑间通过串口连接传输文件
目录一、实验要求二、实验工具三、实验过程四、总结五、参考资料一、实验要求串口传输文件的练习。将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。二、实验工具两台笔记本,两个ttl转接口,若干接线,串口调试助手。三、实验过程先连接两个ttl,打开串口调试助手,设置串口波特率为115200选择一原创 2021-11-09 15:30:29 · 2409 阅读 · 0 评论 -
(Ubuntu+opencv+汉字库)实现点阵汉字的字模读取与显示
目录一二三一二#include<iostream>#include<opencv/cv.h>#include"opencv2/opencv.hpp"#include<opencv/cxcore.h>#include<opencv/highgui.h>#include<math.h>using namespace cv;using namespace std;void paint_chinese(Mat&原创 2021-11-08 23:45:55 · 409 阅读 · 0 评论 -
DMA实现连续向上位机发送数据(STM32开发板)
目录一、DMA概述二、DMA实现连续向上位机发送数据三、总结四、参考资料一、DMA概述DMA(Direct Memory Access,直接存储器访问)是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于CPU 的大量中断负载。否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU对于其他的工作来说就无法使用。原理:DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA原创 2021-11-07 11:09:41 · 1693 阅读 · 0 评论 -
STM32中断实现点灯和串口通信
目录一、STM32中断梗概二、中断模拟开关控制LED灯(HAL库)三、中断实现串口通信四、总结五、参考链接一、STM32中断梗概数据的传输方式中断的概念中断执行过程中断的作用中断的优先级中断向量HAL库的中断外部处理过程二、中断模拟开关控制LED灯(HAL库)新建project选择STM32F103C8芯片配置SYS配置RCC设置GPIOA1为输出引脚设置GPIOB0为中断控制引脚配置GPIO原创 2021-11-06 22:15:28 · 462 阅读 · 0 评论 -
STM32F103C8T6之用寄存器点亮LED流水灯
目录一、准备工作1、什么是STM32芯片?2、GPIO相关的寄存器二、GPIO输出的操作1、初始化GPIO2、设置低电平三、创建项目1、新建项目2、编写代码四、连接电路一、准备工作1、什么是STM32芯片?STM32,从字面上来理解,ST 是意法半导体,M 是 Microelectronics 的缩写,32 表示32 位,合起来理解,STM32 就是指 ST 公司开发的 32 位微控制器。在如今的 32 位控制器当中,STM32 可以说是最璀璨的新星,它受宠若娇,大受工程师和市场的青睐,无芯能出其右。原创 2021-10-19 23:55:17 · 2214 阅读 · 0 评论 -
STM32串口通信输出Hello Window
目录一、准备工作1、UART简介2、实验原理二、创建项目三级目录一、准备工作1、UART简介通用同步/异步接收器/发送器(USART)是一种外围通信硬件设备,它使计算机可以与串行连接的设备进行同步和异步通信。USART通过串行端口和RS 232标准化协议提供串行数据通信。USART也称为串行通信接口(SCI)。USART通过从中央处理单元(CPU)接收并行数据,将其转换为串行数据以传输到串行端口/连接来工作。 同样,它从串行连接/端口接收串行数据,将其转换为并行数据,然后将其发送到CPU。 U原创 2021-10-24 15:36:19 · 680 阅读 · 0 评论 -
使用STMCubeMX生成代码实现点亮流水灯
目录一、安装STM32cubeMX二、用STM32CubeMX初始化代码三、修改代码并点亮流水灯四、运行结果五、参考资料一、安装STM32cubeMX安装地址:STM32Cube初始化代码生成器下载好之后打开,点击Next同意协议,继续Next勾选第一个就好,点击Next选择一个安装路径,点击确定,之后Next点击Next之后点击安装,安装完成如下图安装完成之后还没完,打开STM32CubeMX,点击Help(这里可能会打不开,如果打不开原创 2021-10-24 09:40:25 · 2266 阅读 · 0 评论 -
Keil下STM32的C语言与汇编语言混合编程
目录一、创建项目并进行调试二、C语言调用汇编函数1、无参调用2、有参调用三、汇编函数调用C语言四、总结五、参考资料一、创建项目并进行调试1、创建project输入project的名字,这里我输入的Func。选择芯片类型,这里我选择的是STM32F103VE。(ps:图片是后面调试的时候在魔法棒页面截的,我做的时候忘记截图了。)一些基本配置,按照图片所示选择就好。2、添加main.c和Func.s文件3、编写代码main.c: `# include<stdio.原创 2021-10-13 09:23:07 · 322 阅读 · 0 评论 -
Ubuntu16.04下的Opencv安装与使用
目录一、ubantu16.04安装opencv-3.4.1二、编写一个打开图片进行特效显示的代码 test1.cpp三、练习使用opencv库编写打开摄像头压缩视频的程序。1)、虚拟机获取主机摄像头权限2)、播放视频一、ubantu16.04安装opencv-3.4.1在官网下载source版本的opencv。下载成功之后另存到home目录。解压压缩包unzip opencv-3.4.1.zip进入到解压后的文件包cd opencv-3.4.1安装依赖库和cmake ,如原创 2021-10-10 17:41:08 · 2006 阅读 · 1 评论 -
GCC编译器背后的故事
目录1、准备工作2、将源文件 test.c 文件预处理生成 test.i3、将预处理生成的 test.i 文件编译生成汇编程序 test.s4、将编译生成的 test.s 文件汇编生成目标文件 test.o5、使用动态库进行链接,生成的 ELF 可执行文件的大小和链接的动态库6、使 用 静 态 库 进 行 链 接 , 生成的 ELF 可执行文件的大小和链接的动态库7、使用 readelf -S 查看其各个 section 的信息8、使用 objdump -D 对其进行反汇编1、准备工作编写一个简单的程序原创 2021-10-09 20:12:21 · 52 阅读 · 0 评论 -
练习静态库.a文件与动态库.so文件的生成与使用
目录一、扩写程序二、静态库.a文件的生成与使用三、共享库.so文件的生成与使用接上篇博文Ubuntu16.04系统中分别使用gcc与makefile编译C语言程序。一、扩写程序程序一:sub2.h#ifndef __SUB1_H#define __SUB1_H#include "stdio.h"float x2y(int a,int b);#endif程序二:sub2.cinclude "sub2.h"float x2y(int a,int b){ floa原创 2021-10-08 20:21:44 · 205 阅读 · 0 评论 -
静态库.a与.so文件的生成与使用(练习)
目录编写例子程序1.静态库.a文件的生成与使用2.共享库.so文件的生成与使用编写例子程序程序一:A1.c#include <stdio.h> void print1(int arg){ printf("A1 print arg:%d\n",arg); }程序二:A2.c#include <stdio.h> void print2(char *arg){ printf("A2 printf arg:%s\n", arg); }程序三:A.h#ifnd原创 2021-10-08 15:37:29 · 385 阅读 · 0 评论 -
用gcc生成静态库和动态库(练习)
目录第一步:编辑生成例子程序第二步:将hello.c文件编译成.o文件第三步:由.o文件创建静态库第四步:在程序中使用静态库第五步:由.o文件创建动态库第六步:在程序中使用动态库第一步:编辑生成例子程序程序一:hello.h#ifndef HELLO_H #define HELLO_H void hello(const char *name); #endif //HELLO_H程序二:hello.c#include <stdio.h> void hello(const ch原创 2021-10-08 14:11:21 · 85 阅读 · 0 评论 -
在KEIL环境中真机模拟编写并调试一个简单的STM32程序
文章目录序·安装并配置KEIL一:安装MDK二:支持包下载编写STM32程序一.新建工程二.代码编写与调试1.代码编写2.程序编译3.程序调试4.分析生成的HEX文件。总结序·安装并配置KEIL一:安装MDK1.首先在官网下载KEIL安装包。https://www.keil.com/download/product/.2.下载完成之后找到安装包并点击程序。2.点击Next。3.勾选同意,继续点击Next。4.填写路径,继续点击Next。5.填写信息,继续点击Next。5.进入安装原创 2021-09-27 07:39:31 · 2731 阅读 · 0 评论 -
Ubuntu16.04系统中分别使用gcc与makefile编译C语言程序
文章目录序、准备工作——编写C语言程序一、用gcc编译C语言程序步骤一步骤二步骤三二、用makefile方式编译C语言程序步骤一步骤二步骤三三、与Windows系统下的编程对比步骤一步骤二四、总结序、准备工作——编写C语言程序编写main1.c#include "stdio.h"int main(){ int a=3; int b=7; printf("a/b=%f",x2x(a,b)); return 0;}编写sub1.h#ifndef原创 2021-09-14 09:23:38 · 249 阅读 · 0 评论