自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

UCOS III是一种实时操作系统(RTOS),由Micrium公司开发。它是Micrium公司成熟的实时操作系统产品系列中的一项,具有高度可移植性、可靠性、可扩展性和易用性等优点。UCOS III是一款多任务、多线程操作系统,可在微控制器、数字信号处理器和嵌入式系统中广泛应用。它带有丰富的内核功能,如任务管理、内存管理、时间管理、中断管理、同步和通信机制等,可以帮助嵌入式软件开发人员简化应用程序设计和开发流程。在UCOS III下实现多线程编程主要需要以下步骤:在应用程序中定义需要执行的任务。

2023-11-27 16:42:53 106

原创 STM32RTC(实时时钟)原理及数字温度计设计

实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操作。

2023-11-25 12:17:03 343

原创 STM32 OLED屏显和汉字点阵编码原理

通过完成上述三个任务,学习了串口通信、汉字编码和OLED屏幕显示等相关知识,还获得了实际操作和开发的经验。使我掌握了与外部设备通信、图像处理和嵌入式系统的相关技能,并且提高了我的问题解决能力和编程能力。这些功能虽然比较简单,但是学习总有个过程。好好学习,天天向上。

2023-11-19 23:05:45 218

原创 STM32 I2C通信协议与温湿度传感器模块

在工程目录/Core/Inc下创建aht20.h头文件//函数声明#endif在工程目录/Core/src下创建aht20.c文件0x70//{0x38,0}if((readBuffer & 0x08) == 0x00) //判断校验状态字//发送触发测量命令if(readBuffer[0] & 0x80 == 0x00)//判断忙状态bit[7]是否为0;//位拼接,提取湿度度数据。

2023-11-09 22:09:45 324 1

原创 STM32定时器原理与pwm波生成方式

脉冲宽度调制(PWM),简单来说就是调节信号周期内的占空比(高电平持续时间)来获得我们需要的波形。例如我们需要呼吸灯功能,用PWM波来实现就是在微小的时间周期(利用人眼视觉停留效果)内不断增加输出信号的占空比,也就是电压的大小来控制灯的亮度,达到呼吸灯的效果。PWM的频率:是指在1秒钟内,信号从高电平到低电平再回到高电平的次数,也就是说一秒钟PWM有多少个周期,单位Hz。PWM的周期:T=1/f,T是周期,f是频率。

2023-11-04 16:12:59 176 1

原创 STM32基于DMA方式的串口通信

在STM32微控制器中,DMA(Direct MemoryAccess)是指直接内存访问技术。它是一种数据传输技术,通过将数据直接从外设(如UART、SPI、I2C等)传输到内存,或者从内存传输到外设,而不需要CPU的干预,从而提高了数据传输的效率。DMA控制器有自己的寄存器和逻辑,可以独立地读取和写入数据,而不需要CPU的干预。它可以通过配置寄存器来控制数据传输的源地址、目标地址、数据大小、传输方向和触发条件等。使用DMA的好处是可以减少CPU的负载,提高数据传输的效率。当需要大量数。

2023-10-26 11:53:41 1924

原创 基于HAL库中断方式STM32串口通信

if 1 # pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE {int handle;//定义_sys_exit()以避免使用半主机模式 void _sys_exit(int x) {x = x;} //重定义fputc函数 int fputc(int ch , FILE * f) {//循环发送,直到发送完毕 USART1 -> DR =(uint8_t) ch;return ch;} # endif1。

2023-10-24 23:31:07 188

原创 基于HAL库的LED流水灯

本文章实现了解并掌握STM32中断原理,HAL库函数开发方法。用stm32F103核心板的GPIOA端某一管脚接一个开关。采用中断模式编程,当开关接高电平时,LED流水灯工作接低电平时,LED流水灯停止工作;用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形。

2023-10-20 22:47:20 310 2

原创 STM32基于标准外设库的LED流水灯以及Keil软件的仿真逻辑分析仪使用

本文实现STM32F103C8T6基于标准外设库的LED流水灯,使用某个端口GPIOx端口管脚控制几个LED灯,轮流闪烁,间隔时长1秒。以及通过Keil软件的仿真逻辑分析仪观察管脚的时序波形,分析时序状态正确与否、高低电平转换周期(LED闪烁周期)实际为多少。

2023-10-12 00:13:48 463

原创 Ubuntu、stm32下的程序内存分配问题(堆栈、局部全局变量等)

题目:编写一个C程序,重温全局常量、全局变量、局部变量、静态变量、堆、栈等概念,在Ubuntu(x86)系统和STM32(Keil)中分别进行编程、验证(STM32 通过串口printf 信息到上位机串口助手)。1)归纳出Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址,进行对比分析;2)加深对ARM Cortex-M/stm32F10x的存储器地址映射的理解。

2023-10-05 13:42:05 78

原创 GCC命令背后的故事

本文通过几个简单的程序实例,学习gcc命令生成静态库.a 和动态库.so的方法和库的使用。

2023-09-29 13:04:29 52 2

原创 STM32F103C8T6最小系统板流水灯实验(寄存器地址操作)

STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。STM32F103C8T6单片机采用LQFP48封装设计,芯片一共引出44只引脚,其中A口有A0-A15共16个引脚,B口有B0-B15共16个引脚,C口有C13-C15共3个引脚,D口有D0-D1共两个引脚。引脚功能图:电路原理图:由原理图,发光二极管LED0一端也经1KΩ电阻接到3.3V的VCC,另一端则接到PC13上。

2023-09-25 22:03:40 1087 1

原创 概念理解:寄存器与地址

寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。寄存器是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部分,是有限存储容量的高速存储部件,可以用来暂存指令、数据和位址。举个例子,寄存器顾名思义,就是存东西的地方,可以把寄存器想作超市的购物车,客户可以将商品放入寄存器下暂存。

2023-09-24 15:18:17 2209

原创 一个简单的STM32程序的设计与实现(点亮LED)

(7)安装完成后关闭,使用管理员身份打开,点击许可与管理,英文License Management。(8) 将CID填入,Generate生成。(5)新建main.c文件(CTRL+N)(4)更改路径,→next。(2)选择路径,取工程名。

2023-09-23 16:37:14 561

原创 基于80C51的的程序设计及仿真

通过本次实验熟悉和理解了Proteus软件的安装流程和使用方法,并能够设计一个简单的51单片机程序并实现功能仿真。

2023-09-19 21:06:21 297

原创 嵌入式Linux开发基础

通过在ubantu18.04系统下编写主程序文件main1.c和一个子程序文件sub1.c,分别利用gcc命令行方式编译和makefile方式编译,并运行。熟悉linux开发环境下的程序编译,掌握vi/vim、ls、gcc、make等Linux常用命令的使用。-c :编译和汇编,但不链接。-o <file> :指定输出文件。-S :只编译(不汇编或链接)。-E :仅执行预处理(不要编译、汇编或链接)。目标文件:依赖文件命令1命令2...命令n解释:目标文件在依赖文件的条件下执行命令来生成。

2023-09-12 23:36:55 69

空空如也

空空如也

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

TA关注的人

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