嵌入式程序设计基础
文章平均质量分 90
狴鲲
这个作者很懒,什么都没留下…
展开
-
Git入门&Web前端初窥
文章目录一、Git的概念和基本操作1、概念2.基本操作二、IDEA上传项目至Git1.IDEA配置Git2.github设置token一、Git的概念和基本操作1、概念Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持2.基本操作创建仓库原创 2022-01-09 11:00:54 · 232 阅读 · 0 评论 -
RT-thread Nano移植
文章目录一、相关概念及安装1.RT-thread2.安装二、工程配置及代码编译1.工程配置2.代码3.运行结果三、总结参考链接一、相关概念及安装1.RT-threadRT-Thread, 是一款主要由中国开源社区主导开发的开源实时操作系统,包含了实时、嵌入式系统相关的各个组件:TCP/IP协议栈、图形用户界面等。相较于Linux,RT-Thread 具有体积小,成本低,功耗低、启动快速的优势。除此以外,实时性高、占用资源小等特点,使得它也非常适用于各种资源受限(如成本、功耗限制等)的场合(刚刚好适原创 2021-12-24 07:57:49 · 477 阅读 · 0 评论 -
keil仿真||示波器的使用
文章目录一、keil仿真调试1.仿真设置2.调试3.运行二、示波器使用三、总结参考链接一、keil仿真调试1.仿真设置①点击魔法棒进行设置设置后直接进行调试,会报错error 65: access violation at 0x40023800 : no ‘read’ permission根本原因是:map地址空间权限映射有问题。部分地址空间没有读写的权限,造成程序不能自动运行。采用直接修改添加文件的方式能够很好的解决该问题。如下②错误纠正工程文件(MDK-ARM下)中新建“debug.原创 2021-12-08 10:07:06 · 6518 阅读 · 1 评论 -
时钟RTC实现STM32的日历读取、设置和输出
文章目录一、概念相关1.RTC2.RTC优点3.RTC特征3.RTC时钟源二、项目及代码1.项目建立参考链接一、概念相关1.RTCRTC,英文全称:Real-time clock,中文名称:实时时钟,是指可以像时钟一様输出实际时间的电子设备,一般会是集成电路,因此也称为时钟芯片。实时时钟芯片是日常生活中应用最为广泛的消费类电子产品之一。它为人们提供精确的实时时间,或者为电子系统提供精确的时间基准,目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。2.RTC优点RTC可以提供稳定的时钟信原创 2021-12-07 23:02:02 · 1032 阅读 · 0 评论 -
uc/OS移植stm32F103
文章目录实验要求一、准备工作1.CubeMX建立HAL库2.uCOSIII源码下载二、文件移植与编译1.文件移植2.代码修改2.运行结果三、多任务实现1.代码修改2.运行结果四、总结参考链接实验要求学习嵌入式实时操作系统(RTOS),以uc/OS为例,将其移植到stm32F103上,构建至少3个任务(task):其中两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制;另外一个task以2s周期通过串口发送“hellouc/OS! 欢迎来到RTOS多任务环境!”。记录详细的移植过程。一、原创 2021-12-05 17:33:29 · 159 阅读 · 0 评论 -
基于I2C/SPI的温湿度采集与OLED显示
文章目录一、概念相关1.SPI是什么2.SPI协议二、0.96寸OLED显示屏显示1.显示汉字及数字(1)准备工作(2)代码修改(3)运行结果2.字符滚动(1)代码修改参考链接一、概念相关1.SPI是什么SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200原创 2021-11-29 21:22:14 · 529 阅读 · 0 评论 -
2C协议的AHT20温湿度传感器的数据采集
文章目录一、概念相关1.I2C总线协议二、硬件I2C和模拟I2C二、代码及运行1.代码2.接线3.运行结果三、总结参考链接一、概念相关1.I2C总线协议①I2C总线物理拓扑结构I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。②输入\输出特性二、硬件I2C和模拟I2C①硬原创 2021-11-21 16:55:11 · 113 阅读 · 0 评论 -
点阵汉字的字模读取与显示
文章目录一、相关概念1.汉字机内码2.汉字区位码3.字形储存格式4.汉字点阵获取二、Ubuntu下调用opencv库显示汉字参考链接一、相关概念1.汉字机内码汉字的机内码是指在计算机中表示一个汉字的编码。机内码与区位码稍有区别。如上所述,汉字区位码的区码和位码的取值均在 1~94 之间,如直接用区位码作为机内码,就会与基本 ASCII 码混淆。为了避免机内码与基本 ASCII 码的冲突,需要避开基本 ASCII 码中的控制码(00H~1FH),还需与基本 ASCII 码中的字符相区别。为了实现这两点,原创 2021-11-12 14:26:25 · 574 阅读 · 0 评论 -
串口传输文件
文章目录一、实验要求二、实验过程1.实验步骤2.实验分析三、总结一、实验要求将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。二、实验过程1.实验步骤①将两个usb转rs232 模块用杜邦线连接,其中rx接tx,tx接rx。②选择文件,两台电脑勾选相同的发射率,勾选hex显示和hex发送③点原创 2021-11-10 20:32:29 · 587 阅读 · 0 评论 -
STM32通过DMA方式向上位机连续发送信息
文章目录一、概念相关1.什么是DMA2.DMA传输数据四个要素3.特点4.DMA传输参数二、用DMA连续向上位机发送数据1.创建项目2.修改代码3.运行结果三、总结参考链接一、概念相关1.什么是DMADMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。D原创 2021-11-08 23:12:51 · 334 阅读 · 0 评论 -
STM32中断控制LED灯
文章目录原创 2021-11-08 22:46:35 · 8079 阅读 · 1 评论 -
STM32 汇编程序——串口输出 Hello world
文章目录一、UART介绍二、项目建立及编译1.新建项目2.代码3.编译三、电路连接及烧录1.串口连接2.烧录四、串口输出五、总结参考链接一、UART介绍通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一 个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个 UART(Universal Asynchronous Receiver and Transmitter),它是在 USA原创 2021-10-24 19:35:36 · 2038 阅读 · 1 评论 -
STM32基于HAL库流水灯实验
文章目录一、环境搭建1.安装jdk2.安装MDK3.安装STM32CubeMX二、HEL库GPIO端口3只LED红绿灯的周期闪烁1.创建项目2.代码及烧录3.波形观察三、总结参考链接一、环境搭建1.安装jdk由于STM32CubeMX是Java实现的,需要安装jdk环境。jdk官网下载链接:下载官网2.安装MDK这一部分的内容之前做过,这里附上链接:基于MDK创建纯汇编语言的STM32工程3.安装STM32CubeMX下载地址安装过程只要一直点击next即可,这里展示一下固件库的安装He原创 2021-10-24 18:27:25 · 733 阅读 · 0 评论 -
STM32F103寄存器方式点亮LED流水灯
文章目录一、STM32F103系列芯片使用入门1.寄存器一、STM32F103系列芯片使用入门1.寄存器①概念 寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。数据寄存器 存放数据,不同的数据存放在不同寄存器里。指令、地址寄存器 指令、地址寄存器与数据寄存器类似,里边存放的都是0和1,毕竟单片机也只认识机器码,机器码都是0或1,只是特别的规定下,数据寄存器里面存放的0和1表示数据,指令寄存器里存放的表示指令。参考链接STM32寄存器的简介、原创 2021-10-21 09:39:27 · 205 阅读 · 0 评论 -
Linux下安装opencv.3.4.15并初步使用
文章目录一、什么是opencv二、下载安装及配置1.下载一、什么是opencvOpenCV是Intel开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。优点1、 OpenCV 对非商业应用和商业应用都是免费的;2、 开源的;3、 可以应用于工程实践中;缺点相对于Matlab而言,OpenCV基于C语言开发,编程复杂,开发周期较长。可以看出,OpenCV的优缺点正好与Matlab的优缺点相反,两者各有所长,根据不同的要求选择不同的编程原创 2021-10-17 18:52:51 · 303 阅读 · 0 评论 -
Linux GCC常用命令和ELF文件格式
文章目录一、Linux GCC 常用命令1.gcc简介2.程序编译Ⅰ.一步到位的编译Ⅱ.分布进行Ⅲ.运行结果3.多个程序文件的编译4.检错5.库文件连接二、不同工具1.GCC编译工具2.Binutils3.C 运行库三、ELF文件格式——Hello.c示例1.代码及编译过程2.分析ELF 文件四、总结一、Linux GCC 常用命令1.gcc简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言原创 2021-10-16 17:55:10 · 278 阅读 · 0 评论 -
GCC学习(动态库与静态库.a与.so)
文章目录GCC生成动态库和静态库1.静态库.a与.so库文件的生成(1)编辑生成例子程序GCC生成动态库和静态库1.静态库.a与.so库文件的生成概念 我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。(1)编辑生成例子程序代码如下hello.h#ifndef HELLO_H#defin原创 2021-10-16 10:47:58 · 724 阅读 · 0 评论 -
STM32的C与汇编语言混合编程
文章目录一、C语言调用汇编函数1.项目创建及源码2.调试二、修改函数后再次尝试1.源码修改2.调试三、汇编函数调用C语言函数1.代码2.编译一、C语言调用汇编函数1.项目创建及源码在工作区新建如下两个文件:main.c;Func.s分别输入以下代码main.c# include<stdio.h>extern void Init_1(void);int main(){ Init_1(); return 0;}Func.s AREA MY_FUNCTION原创 2021-10-13 22:57:32 · 75 阅读 · 0 评论 -
基于MDK创建纯汇编语言的STM32工程
这篇文章是一篇学习笔记,主要记录一下单例模式和工厂模式,其内容有许多部分为转载。有理解不到位的地方请指出和改正。文章目录一、单例模式1.概念2.实现方式3.特点二、工厂模式1.概念2.实现方式软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。一、单例模式1.概念指一个类只有一个实例,且该类能自行创建这个实例的一种模式。2.实现原创 2021-09-28 21:47:28 · 116 阅读 · 0 评论 -
Ubuntu:学习gcc和Makefile编译C程序
Ubuntu系统使用gcc和Makefile编译C程序原创 2021-09-14 19:46:48 · 176 阅读 · 0 评论