自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 STM32F103C8T6基于HAL库移植uC/OS-III

µC/OS/III是一个实时操作系统,也就是 RTOS(Real Time Operating System)。操作系统最直观的特点就体现在,操作系统能够使得一个 CPU 核心“同时运行”多个任务,这个特性就被称为“多任务”。然而,实际上,一个 CPU 核心在某一时刻只能运行一个任务,而操作系统中任务调度器的责任就是决定在某一时刻 CPU 究竟要运行哪一个任务,任务调度器使得 CPU 在各个任务之间来回切换并处理任务,由于切换处理任务的速度非常快,因此给人造成了一种同一时刻有多个任务同时运行的错觉。

2023-11-27 20:31:35 186 1

原创 数字温度计

读取STM32F103C8T6 内部的时钟(年月日时分秒),日历(星期x),1秒周期,通过串口输出到PC上位机。

2023-11-25 22:53:19 91

原创 汉字点阵与LED屏显

将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、和传输时间三者之间的关系,并对比实际传输时间。

2023-11-19 22:06:00 183

原创 IIC协议读取温湿度数据

的硬件IIC和软件IIC都可以用来实现IIC通信,但它们有一些不同之处所谓硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的;软件I2C一般是用GPIO管脚,用软件控制管脚状态以模拟I2C通信波形。硬件I2C的效率要远高于软件的,而软件I2C由于不受管脚限制,接口比较灵活。模拟I2C 是通过GPIO,软件模拟寄存器的工作方式,而硬件(固件)I2C是直接调用内部寄存器进行配置。如果要从具体硬件上来看,可以去看下芯片手册。因为固件I2C的端口是固定的,所以会有所区别。

2023-11-19 18:12:15 148

原创 STM32使用定时器和pwm应用编程

预分频寄存器设置为0 (计数器的时钟为TIM1CLK/(O+1)),自动重载寄存器设为 1799,CCRx寄存器设为899。时基单元就是定时器框图的第二部分,它包括三个寄存器,分别是:计数器寄存器(TIMx_CNT)、预分频器寄存器(TIMx_PSC)和自动装载寄存器(TIMx_ARR)。③内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。

2023-11-05 22:24:19 208

原创 stm32使用HAL库基于中断/DMA方式的串口通信

DMA(Direct memory access)直接内存访问,被用于内存和内存之间或内存和外设之间的高速数据传输。数据传输可以在没有CPU的干预下快速移动,这样可以保持CPU资源处理其他事情。DMA 控制器基于复杂的总线矩阵架构,将功能强大的双 AHB 主总线架构与独立的 FIFO 合在一起,优化了系统带宽。输入线:EXTI 0-15是连接到GPIO的(每一个GPIO端口都有16个引脚),当我们使用EXTI0的时候,控制的是所有端口的第0个引脚。

2023-11-02 23:02:30 422

原创 使用STM32CubeMX完成串口通信

串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。

2023-10-26 23:00:08 2292 1

原创 基于HAL库的stm32流水灯开发

HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。并且从16年开始,ST公司就逐渐停止了对标准固件库的更新,转而倾向于HAL固件库和 Low-layer底层库的更新,停止标准库更新,也就表示了以后使用STM32CubeMX配置HAL/LL库是主流配置环境;和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。*创建项目,打开生成的Keil文件。

2023-10-24 23:13:00 90

原创 基于固件库的STM32LED流水灯并用KEIL逻辑分析仪观察GPIO口波形

通过这次实验我再次深刻地体会到stm32开发的乐趣,并学会了使用固件库创建工程文件,并使用keil自带的逻辑分析仪查看端口输出波形。是一次收获颇丰的实验。

2023-10-16 21:02:50 773 1

原创 Linux系统使用gcc生成静态库和动态库并使用

程序中使用静态库注意:对于自定义的静态库,main.c 还可以放在-L.和-lmyhello 之间,否则 myhello 没有定义。-L.:表示连接的库在当前目录。验证静态库的特点在删掉静态库的情况下,运行可执行文件,发现程序仍旧正常运行,表明静态库跟程序执行没有联系。同时,也表明静态库是在程序编译的时候被连接到代码中的。对于gcc的进一步学习,让我不禁感叹gcc真是一个强大的编译器。gcc不是一个人在战斗,gcc背后其实有一堆战友,他们为gcc变得强大做出了巨大的贡献。

2023-10-07 23:05:59 768 1

原创 使用寄存器地址操作实现STM32F103的流水灯

STM32最小开发板(STM32F103C8T6),USB转TTL连接线,Proteus软件,keil软件*STM32F103C8T6电路板引脚图如下:*电路板原理图如下:(图片转载自网络)

2023-10-04 23:43:25 242 1

原创 使用keil安成Proteus电路仿真及stm32的简易程序开发(通过寄存器使用GPIO输出)

都需要使用寄存器或地址来访问或修改数据,都需要连接相应的端口,初始化相关端口的数据和设置。都需要转录相关的c语言程序通过寄存器来实现对内存的修改。在数据的精确度方面,二者都需要满足一定的时序或操作顺序,避免出现系统报错或无法烧录的问题。对内存中的变量进行修改操作时,可以直接使用变量名来进行读取和修改,而对外部设备的操作通常需要通过特定的寄存器或地址进行读写。也就是说对比内存变量,外部设备的操作要更加复杂,因为需要设置和初始化相关的结构体数据类型。

2023-09-24 21:11:43 2055

原创 Ubuntu系统下使用gcc和Makefile工具完成对C语言程序的编译(附例)

本文使用Ubuntu系统,在vware虚拟机上利用Linux系统编写及编译运行C程序。程序实现的功能有输出一段字符、创建一个进行数字运算的函数。第一种使用gcc编译,利用vim工具进行编写,第二个种同样使用vim工具进行编写,但使用Makefile文件进行编译。具体参数的设置和编写步骤见文章。

2023-09-13 10:59:03 384 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除