自定义博客皮肤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)
  • 收藏
  • 关注

原创 嵌入式RTOS多任务程序设计

uc/OS-III是由Jean J.Labrosse开发的,它是uc/OS-II的升级版本,相比于uc/OS-II,uc/OS-III进行了大量的扩展和改进。uc/OS-III是一种常见的嵌入式实时操作系统之一。4.事件驱动:uc/OS-III采用事件驱动的方式进行任务调度,任务可以通过等待事件的发生来进行阻塞和唤醒,提高系统的灵活性和响应能力。6.中断支持:uc/OS-III支持中断处理,可以在中断服务程序中调用uc/OS-III的API函数,实现中断和任务的协同工作。

2023-11-27 11:39:29 870 1

原创 数字温度计

后备区域:RTC模块和时钟配置系统(RCC_BDCR寄存器)位于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间保持不变。时钟来源:RTC的时钟来源有三种,分别是高速外部时钟(HSE)、低速外部时钟(LSE)和低速内部时钟(LSI)。RTC_Alarm:RTC还提供了闹钟功能,可以设置一个闹钟时间(RTC_Alarm),当计数器的值与闹钟时间相等时,会触发中断,执行相应的操作。时钟来源:RTC的时钟来源有三种,分别是高速外部时钟(HSE)、低速外部时钟(LSE)和低速内部时钟(LSI)。

2023-11-21 21:38:41 51

原创 汉字点阵与OLED屏显

区码表示汉字所在的区,取值范围是01-87,位码表示汉字在区内的位置,取值范围是01-94。汉字点阵编码的原理是将汉字按照一定的规则转换为点阵表示,每个点的状态(虚实)表示了汉字的轮廓和形状。它是汉字最基本的编码形式,不管是什么汉字系统和汉字输入方法,输入的汉字外码都要转换成机内码,才能被存储和进行各种处理。传输时,使用手机同步计时,实际的传输时间为4*60+31=271秒,比理论计算的216秒与系统给出的理论实践200秒都要长,说明实际上通过串口传输的速率没办法达到理论峰值。

2023-11-15 17:05:42 109

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

硬件I2C通常由微控制器或集成电路中的特定硬件模块实现,这些硬件模块具有专门的电路和寄存器,用于生成和接收I2C通信所需的时钟和数据信号。通过使用硬件I2C,可以提高通信的效率和可靠性,减少对处理器的负载。总的来说,硬件I2C是通过专门的硬件模块实现的I2C通信,具有高效、可靠的特点。在硬件I2C中,使用专门的硬件模块或外设来处理I2C通信的时序和数据传输,而不是通过软件模拟的方式来实现。AHT20的SCL,GND,SDA,VCC分别对应接stm32f103指南者i2c模块的B6,GND,B7,5V。

2023-11-08 21:04:27 46 1

原创 定时器&PWM应用编程

位置5,向上计数模式,计数周期为5000,使能自动重载模式。这里我们选择定时器3和定时器4来实现定时的功位置3,分频系数为71,向上计数模式,计数周期为500,使能自动重载模式。这里我们设置为每隔50毫秒,占空比加10,如果超过500(也就是PWM周期),自动变成0。点System Cor,选择RCC,在右侧弹出的菜单栏中选Crystal/Ceramic Resonator。点System Cor,选择RCC,在右侧弹出的菜单栏中选Crystal/Ceramic Resonator。

2023-11-04 15:41:45 39 1

原创 基于中断/DMA方式的串口通信

综上所述,USB/TTL转232模块(以CH340芯片模块为例)通过CH340芯片实现USB与串口之间的数据转换,使计算机能够通过USB接口与串口设备进行通信。它内部集成了USB控制器和串口转换器,通过与计算机的USB接口连接,实现USB与串口之间的数据转换。电平转换:USB/TTL转232模块中的CH340芯片负责将USB接口的逻辑电平转换为串口接口所需的RS-232电平。USB/TTL转232模块(以CH340芯片模块为例)是一种用于将USB接口转换为串口(RS-232)接口的设备。

2023-10-31 17:21:05 29 1

原创 STM32串口通信入门

由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个“电平转换芯片”转换成控制器能识别的“TTL校准”的电平信号,才能实现通讯。因此,串口通讯中需要进行RS-232电平和TTL电平之间的转换。但是,由于RS-232标准中使用的电平范围更广,所以它需要更多的电路来进行电平转换,从而增加了成本和复杂度。总之,串口协议是一种用于在计算机和外部设备之间进行数据传输的通信协议,而RS-232标准是一种用于串行通信的标准,它规定了数据传输的电气特性、信号传输的时序和数据格式等。

2023-10-25 21:05:05 36

原创 了解并掌握STM32中断原理,HAL库函数开发方法

1.下载地址:[https://www.st.com/en/development-tools/stm32cubemx.html]https://www.st.com/en/development-tools/stm32cubemx.html)2.找到EXTI9_5_IRQHandler这个函数,选中HAL_GPIO_EXTI_IRQHandler这个语句按F12跳到该函数。引脚为低电平的灯亮,高电平的灯不亮,高低电平转换周期(LED闪烁周期)为1s左右。

2023-10-23 20:08:28 56

原创 基于标准外设库的LED流水灯

可以直观地计算波形的宽度:移动光标的位置到某一个点,单击鼠标左键就会把这个点设置为起始点,然后移动光标到另一个位置就可以看到很多的信息,包括时间还有两点之间的时间差,也就是宽度。观察下图每次变化的时间,可知没隔约1秒波形变化,每次都是两个高电平,一个低电平,对应一个灯亮,两个灯灭,可知时序正确,高低电平转换周期实际约1s,与预想的一致。点击Includ Paths右边的省略号,点击New(Insert),点击省略号,选择前面拷贝过来的三个文件夹,Librarise,User,start。

2023-10-16 19:43:45 55 1

原创 GCC背后的故事&C程序常量变量的地址分配

然后用vim编辑生成需要的三个文件hello.h,hello.c,main.c。第一步:编辑生成例子程序hello.h,hello.c,main.c。使用gedit text.c命令创建text.c程序。第二步:将hello.c编译成.o文件。对比可得,动态库文件比静态库文件更大。1.3使用.a库文件,创建可执行程序。第三步:静态库和动态库的生成和使用。第三步:由.o文件创建静态库.a。第五步:由.o文件创建动态库文件。1.静态库.a文件的使用和生成。2共享库.so文件的生成和使用。

2023-10-05 16:55:02 65

原创 STM32F103的流水灯点亮版本1(寄存器地址操作)

每个 GPI/O 端口有两个 32 位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个 32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个 32 位置位/复位寄存器(GPIOx_BSRR),一个 16 位复位寄存器(GPIOx_BRR)和一个 32 位锁定寄存器(GPIOx_LCKR)。(1)点击project,选择new μvision project,创建工程名为lsd,点击保存,点击保存然后弹出的芯片选择,我们选择芯片STM32F103RB,然后点击ok。

2023-09-27 22:30:34 185 1

原创 STM32/51单片机编程入门(点亮LED)

在嵌入式系统中,由于硬件的特殊性,某些变量可能会被外部设备或者其他中断程序修改,因此需要使用volatile关键字来确保程序正确地读取和写入这些变量的值。1、对内存中的变量进行修改操作时,可以直接使用变量名来进行读取和修改,而对外部设备的操作通常需要通过特定的寄存器或地址进行读写。2、内存中的变量修改操作通常是在代码中进行的,而对外部设备的操作通常是通过特定的指令或函数调用来完成的。3、对内存中的变量的修改操作主要受限于内存容量,而对外部设备的操作则受限于设备的特性和功能。

2023-09-24 17:06:16 125 1

原创 作业一——嵌入式Linux开发基础

1、打开ubantu终端2、找到合适位置新建文件夹helloworld3、打开hellowworld文件夹4、用vim新建并打开一个名为hello.c的c语言文件5、输入c语言代码(点击a进入编辑模式,在光标处输入)6、用gcc命令编译hello.c7、运行helloworld文件​。

2023-09-15 21:31:10 57

空空如也

空空如也

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

TA关注的人

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