- 博客(15)
- 收藏
- 关注
原创 汉字点阵、OLED屏显与串口传输文件
SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设 备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间, 要求通讯速率较高的场合。SPI设备之间采用全双工模式通信,是一个主机和一个或者多个从机的主从模式。主机负责初始化帧,这个数据传输帧可以用于读与写两种操作,片选线可以从多个从机选择一个来响应主机的请求。
2024-01-17 16:47:18
1106
原创 stm32f103C8T6移植uc/OS-III实时操作系统
3种物联网操作系统:Huawei LiteOS、Amazon FreeRTOS和RT-ThreadRTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作 ,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格。RTOS操作系统:UCOS,FreeRTOS,RTX,RT-Thread,DJYOS等。
2024-01-16 14:31:50
1753
1
原创 基于STM32F03C8T6的数字温度计
RTC (Real Time Clock):实时时钟RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。STM32的 RTC 外设(Real Time Clock),实质是一个掉电后还继续运行的定时器。从 定时器的角度来说,相对于通用定时器 TIM 外设,它十分简单,只有很纯粹的计时和触发 中断的功能;
2024-01-11 22:46:54
994
原创 STM32F103基于I2C协议的AHT20温湿度传感器的数据采集
通过此次实验理解和学习了IIC的协议从图中可以看出当我对温度测试计哈气过后,湿度数据由60%变为了接近95%,可能是由于我的哈气中水分过多,十分符合场景,温度数据明显上升由24度上升到了27度。
2023-11-15 21:48:27
252
原创 定时器&&PWM
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用 微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。1. 通过次实验,理解和掌握了定时器的原理,以及如何通过HAL库使用定时器和通过定时器输出PWM。
2023-11-08 22:49:39
119
1
原创 基于HAL库实现DMA串口通信
对比前面的查询和中断方式,如果传输的数据量过大,那么就会一直触发中断,从而导致中断连续发生,CPU同样也需要花费大量时间去频繁地处理中断,DMA将外设和内存直接连接,不经过CPU,直接与外界交换数据,这样就节省了CPU资源,从而提高了效率。
2023-11-02 21:20:34
1924
1
原创 HAL库中断方式进行串口通信
函数说明:串口中断接收,以中断方式接收指定长度数据。大致过程是,设置数据存放位置,接收数据长度,然后使能串口接收中断。接收到数据时,会触发串口中断。再然后,串口中断函数处理,直到接收到指定长度数据 而后关闭中断,进入中断接收回调函数,不再触发接收中断。(只触发一次中断)
2023-10-26 20:33:05
816
原创 串口协议和RS-232标准,RS232电平与TTL电平的区别,USB/TTL转232“模块(以CH340芯片模块为例)
串口通讯是一种设备间非常常用的串行通讯方式,因为它简单、便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通 讯方式输出调试信息。CH340是一个USB总线的转接芯片,可实现USB转串口或者USB转打印口。
2023-10-26 20:22:39
1561
原创 基于HAL库的LED流水灯
1、对比之前的固件库,使用HAL库相对来说,HAL库开发效率大幅度提高,只需要在stm32cubeMX的UI界面进行操作,很快的就能配置好所需内容,不需了解STM32的每个接口的具体信息,然后就可以更简单得到函数。2、仿真结果,起始电平在1秒开始,结束时间约为2秒结束,时间差大约为1秒,完成任务。
2023-10-25 21:50:38
85
1
原创 基于固件库的STM32 LED流水灯
1.标准外设库实现流水灯,个人感觉比较直接编译实现,比较复杂,但是更有趣,复杂的在于标准外设库源文件的添加,一旦有一个头文件没添加,就会出现错误。2.通过软件延时的方式,时间延时肯定是不准确的,且通过软件仿真查看的延时结果是否有误差也并不知道,如果需要准确的延时,那么需要用到定时器(TIM)
2023-10-17 22:41:05
130
原创 Ubuntu、STM32下的C程序中堆、栈、全局、局部等变量的分配地址,对比分析
从结果上来看:Ubuntu在栈区和堆区的地址值都是从上到下增长的;stm32的栈区的地址值是从上到下减小的,堆区则是从上到下增长的。
2023-10-10 22:14:30
519
1
原创 使用GCC创建和使用静态库和动态库,并且举例实现&&GCC的常用命令、编译过程和了解EFE文件格式
通过上面的操作,发现一个高级语言程序,通过预处理、编译、汇编之后生成了main.o目标文件的ELF格式文件,这到底是一种怎样的文件格式呢?ELF是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件的文件格式。一个ELF文件一般由四个部分组成:ELF header 里面存放着很多整体分布的信息,如文件类型、版本信息等;Program header table 描述的是一个段在文件中的位置、大小以及它被放进 内存后所在的位置和大小;
2023-10-10 19:32:56
918
1
原创 STM32流水灯实验(通过Keil5和Proteus8.15仿真软件实现)
1. Proteus仿真会出现和实际实验时钟频率不一致的问题,需要自己多次试验,时钟频率与我们实物延时时间相差比较大。2.在JLink烧录程序的时候,注意添加STM32的启动项,不然在编译程序的时候会发生错误。
2023-10-04 21:30:50
5102
1
原创 Keil4与Proteus仿真程序实现流水灯实验&STM32实现通过寄存器实现流水灯实验
1. C51不需要分频,且为8位单片机,STM32需要时钟分频且为32位单片机,功能更复杂,C51 编写流水灯程序时比STM32更简单。2. stm32存储器映射是给绝对地址命名个别名,通过寄存器更改绝对地址里面的值。3. 寄存器是CPU内部的组成部分,通过内部总线与CPU直接相连,内存是通过外部地址总线与C PU相连,通过外部总线寻址,通过寄存器修改变量的值比内存更快。
2023-09-29 14:17:12
2694
原创 Ubuntu 用gcc/Makefile编译器 运行c语言程序
n\n思路:先编写sub1.c程序,再将封装为库函数,在主函数中引用sub1.c的头文件,调用其库函数。5.在Ubuntu系统上编写C语言与在Windows系统不同,在Ubuntu上建立编译运行都是一个编辑窗口进行下去,这种方法更加原始,对比Windows系统的操作更加复杂,可以说几乎不用鼠标操作便能完成一系列程序。2. ubuntu环境下用gcc编译一个文件比较简单,只需将程序转为二进制可执行文件即可,但是在运用到函数之间的调用的时候,即运用到库时,较为复杂。成功输出Hello World!
2023-09-15 22:49:56
1400
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人