- 博客(14)
- 收藏
- 关注
原创 stm32F103C8T6移植uc/OS基于HAL库详细过程
通过本次实验,我学习了嵌入式实时操作系统,成功地将uC/OS-III系统移植到stm32F103上,构建完成了3个实验要求任务(task),整个过程参照大佬的流程做下来,站在前人的肩膀上看会简单很多,但依然要很细心,每一个程序的修改,每一个文件的添加错误都无法完成实验,添加文件时一定要仔细,注意文件的路径。我经过反复的查看错误再去查看步骤,最终完成了实验,难度不大,但是需要一定的耐心和细心。
2022-11-06 23:57:33
296
1
原创 STM32基于SPI/IIC接口的OLED数据显示
SPI是一个同步的数据总线,也就是说它是用单独的数据线和一个单独的时钟信号来保证发送端和接收端的完美同步。时钟是一个振荡信号,它告诉接收端在确切的时机对数据线上的信号进行采样。产生时钟的一侧称为主机,另一侧称为从机。总是只有一个主机(一般来说可以是微控制器/MCU),但是可以有多个从机;数据的采集时机可能是时钟信号的上升沿(从低到高)或下降沿(从高到低)。
2022-11-04 18:36:40
433
原创 STM32完成基于I2C协议的AHT20温湿度传感器的数据采集
I2C 通讯协议是由 Phiilps 公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps 以上。注意IIC是为了与低速设备通信而发明的,所以IIC的传输速率比不上SPI。
2022-11-02 19:29:17
423
原创 STM32采用定时器Timer方式实现串口定时输出hello worlds及LED灯闪烁
定时器/计数器作为SoC的外设,主要用来实现定时执行代码的功能。定时器相对于SoC来说,就好像闹钟相对于人来说意义一样。单核的CPU是单线程的,只能干一件事情,干完这件事情完去干另一件事情需要定时器来提醒。基本定时器框图如下:1. 时钟源(TIMxCLK)
2022-10-30 19:55:35
1094
原创 STM32通过输出PWM波形实现呼吸灯
即脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术;它是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。通过这次的呼吸灯实现的实验,首先是将课上学习到的PWM的相关理论知识,运用到了实践,并学会了对其的基本应用。
2022-10-30 17:43:57
445
原创 stm32串口DMA方式向上位机连续发送数据
DMA,全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。我们知道CPU有转移数据、计算、控制程序转移等很多功能,系统运作的核心就是CPUCPU无时不刻的在处理着大量的事务,但有些事情却没有那么重要,比方说数据的复制和存储数据,如果我们把这部分的CPU资源拿出来,让CPU去处理其他的复杂计算事务,是不是能够更好的利用CPU的资源呢?
2022-10-24 21:37:44
3758
1
原创 stm32外部中断模式控制灯亮灭以及完成中断方式的串口通信
中断通常被定义为一个事件,该事件能够改变处理器执行指令的顺序。这样的事件与 CPU 芯片内外部硬件电路产生的电信号相对应。中断分为同步中断和异步中断。同步中断——同步中断是当指令执行时由 控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后 CPU 才会发出中断异步中断——异步中 断是由其他硬件设备依照 CPU 时钟信号随机 产生的。通常我们所说的中断指的是异步中断,我们将同步中断称为异常。(异常是由程序的错误产生的,或者是由内核必须处理的异常条件产生的)*
2022-10-21 20:27:50
238
原创 基于STM32 创建USART串口通讯程序程序:串口输出 Hello windows
通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART(Universal Asynchronous Receiver and Transmitter),它是在 USART 基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 UART。
2022-10-17 22:53:37
412
原创 STM32F103C8T6用寄存器&HAL库完成LED流水灯程序详解及输出波形分析
寄存器是 CPU 内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的 时序逻辑电路 ,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个 锁存器 或触发器可以构成N位寄存器。寄存器是 中央处理器 内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。在计算机领域,寄存器是CPU内部的元件,包括 通用寄存器 、专用寄存器和控制寄存器。
2022-10-13 20:17:00
3146
原创 STM32F103C8T6以寄存器方式借助面包板搭建电路点亮LED流水灯详解
寄存器是 CPU 内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的 时序逻辑电路 ,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个 锁存器 或触发器可以构成N位寄存器。寄存器是 中央处理器 内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。在计算机领域,寄存器是CPU内部的元件,包括 通用寄存器 、专用寄存器和控制寄存器。
2022-10-13 18:46:07
3886
1
原创 Keil嵌入式开发环境的搭建配置及STM32汇编程序的编写
通过对汇编的初步了解,发现对应汇编理解还不够,还太会使用汇编进行编程。给一段简单的汇编代码,基本能够读懂大部分语句的含义,但是,自己写还不是太会,还需要进一步学习。
2022-10-08 15:09:09
2155
原创 Ubuntu下opencv打开图片、视频、git的使用以及上传代码到gitee的仓库
在本次练习中,下载opencv过程多,耗时长,还出现了一些错误,但是下载好了之后,对图片的特效以及打开视频都可以按着步骤完成,比较方便。
2022-09-25 15:11:31
1008
原创 Linux下GCC生成静态库和动态库过程详解
静态库制作完了,使用它内部的函数,只需要在使用到这些公用函数的源程序中包含这些公用函数的原型声明,然后在用gcc命令生成目标文件时指明静态库名,gcc将会从静态库中将公用函数连接到目标文件中。将x2x、x2y目标文件用 ar工具生成1个 .a 静态库文件, 然后用 gcc将 main函数的目标文件与此静态库文件进行链接,生成最终的可执行程序.这里的a1.c文件对应得是前面第一次作业的sub1.c,这里的a2.c文件对应得是前面的main1.c,这里的a3.c文件对应得是前面的sub1.h,
2022-09-23 20:37:46
1076
原创 【嵌入式1】Ubuntu系统下运行C语言程序以及用Makefile方式编程
选择Vmnet8,点击NAT设置,进行端口映射的添加。然后点击添加,输入主机端口 22 ,虚拟机ip (就是刚才我们在ubuntu中查询的,我这里是192.168.161.128),选择TCP协议,虚拟机端口 22 ,然后点击确定。重复上一步骤,依次添加111,2049,9999 端口,确定并保存。在NAT网络下,开发板无法看到Ubuntu,如果开发板需要访问Ubuntu,需要进行端口映射。首先关闭WMware中的Ubuntu,然后编辑虚拟机设置。启动Ubuntu,打开终端,输入。编辑完成后,esc键,
2022-09-10 15:40:15
2039
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人