- 博客(23)
- 收藏
- 关注
原创 【蓝桥杯嵌入式备赛】其七:12、13届省赛技巧记录
记录了我在完成12、13届蓝桥杯嵌入式省赛时学习到的一些语法和技巧,其中包括年月日的时间转换和时间间隔计算、串口通信函数、PWM输出信号调整以及密码的判断显示。
2024-03-29 11:12:27 758 1
原创 【蓝桥杯嵌入式备赛】其六:串口通信
用于通过UART(通用异步收发器)接口向上位机发送数据,其中包括四个参数;*UART_HandleTypeDef *huart *:UART接口配置信息;*uint8_tpData:指向包含要传输数据的数据缓冲区的指针;:要传输的字节数;:以毫秒为单位的超时值,如果传输操作超过此时间函数将返回错误。用于在中断模式下接受一定量的数据,Size:要接收的数据元素(u8或u16)数量,每次中断只能接收一个字符,因此该函数Size只能填1;在main函数中在进入while循环前需要调用该函数。
2024-03-24 14:42:42 713
原创 【蓝桥杯嵌入式备赛】其五:ADC与IIC
主控板:STM32G431RBT6板载下载器:DAPLINK软件:STM32CubeMX、Keil MDK5。
2024-03-22 15:35:55 875
原创 【蓝桥杯嵌入式备赛】其四:定时器
实现各个功能时最好不要复用定时器,否则可能会导致一部分功能失效。第二是在实现界面切换是需要注意进行清屏操作,否则可能会有上一个界面的残留显示,另外还需要注意在识别按键按下并完成相应的操作后,需要将标志按键按下的标志位清零,否则为会识别为按键反复被按下从而影响显示结果。在配置引脚过程中不选择带N的定时器,是因为TIM1_BKIN这种带N的定时器通道是用来生成互补PWM的。//用于启动定时器的中断模式,使用之前需要先初始化好定时器的配置,并将相关的中断处理函数注册到对应的中断向量中。
2024-03-21 17:22:55 1558 2
原创 【蓝桥杯嵌入式备赛】其二:LCD液晶屏显示
在编写代码前首先需要烧录测试例程检查板子和库函数确认都没问题。商家发给我的例程中lcd.c文件存在问题无法显示内容,耽误了很多时间。
2024-03-18 18:33:22 747
原创 STM32F103C8T6基于HAL库移植uC/OS-III
UCOS是Micrium公司出品的RTOS类实时操作系统, UCOS目前有两个版本:UCOSII和UCOSIII。UCOSIII是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制,提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。UCOSIII是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的, UCOSIII结构简洁,可读性很强!非常适合初次接触嵌入式实时操作系统学生、嵌入式系统开发人员和爱好者学习。什么是任务。
2023-11-26 22:33:28 1452 1
原创 读取STM32F103C8T6 内部的时钟和AHT20的温湿度并显示在OLED屏上
RTC是一个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。
2023-11-25 21:25:33 2340
原创 STM32+OLED屏显应用实例
SPI(Serial Peripheral interface)是串行外围设备接口,SPI 接口主要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32 也有 SPI 接口。在这里插入图片描述MISO 主设备数据输入,从设备数据输出。
2023-11-19 13:12:33 192
原创 两台电脑串口通信与点阵字符的字模读取与显示
通过将两台笔记本电脑,借助usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件将一台笔记本上的一个大文件传输到另外一台电脑。传输txt文件,速度很快,而且可以之间打开,但视频、图片文件、压缩包文件有的需要另外选择打开方式才能打开,并可能存在打开错误的问题。很明显的是,实验过程中,传输的文件越大,传输时间越长,这和预期一致。在一定范围内,当波特率增大时,对于同等大小的文件,传输时间会减少,当超过这一范围时,波特率对传输时间的影响就会减小。
2023-11-19 12:19:54 161
原创 使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集
IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。
2023-11-09 22:54:14 324
原创 定时器&PWM应用编程
在STM32F1 系列中,除了互联型的产品,共有 8 个定时器,分为基本定时器,通用定时器和高级定时器。通用定时器 TIM2/3/4/5是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,每个定时器有四个外部 IO。
2023-11-04 15:58:19 105
原创 中断方式和DMA方式完成串口通信
什么是DMA (DMA的基本定义)DMA,全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。我们知道CPU有转移数据、计算、控制程序转移等很多功能,系统运作的核心就是CPUCPU无时不刻的在处理着大量的事务,但有些事情却没有那么重要,比方说数据的复制和存储数据,如果我们把这部分的CPU资源拿出来,让CPU去处理其他的复杂计算事务,是不是能够更好的利用CPU的资源呢?
2023-10-30 15:49:32 675
原创 HAL库实现STM32串口通信
TXD:发送端,一般表示为自己的发送端,正常通信必须接另一个设备的RXD。RXD:接收端,一般表示为自己的接收端,正常通信必须接另一个设备的TXD。正常通信时模块本身的TXD永远接设备的RXD。
2023-10-26 19:30:37 1422
原创 STM32CubeMX使用HAL库点亮LED流水灯
pinstate代表当前引脚的高低电平,高电平(GPIO_PIN_SET)、低电平(GPIO_PIN_RESET)。需要注意的是中断函数中只能执行很快的命令,所以不能在回调函数中写入循环函数,否则程序将无法继续执行。标识符flag=1时PA8端口电平为高,流水灯点亮;函数获取PA8的端口电平,高电平令flag=1,流水灯点亮,低电平令flag=0,流水灯熄灭。PA8端口作为中断输入,当PA8端口电平变换时触发中断,进入中断回调函数,再通过。引脚为低电平的灯亮,高电平的灯不亮,高低电平转换周期为1s左右。
2023-10-22 18:48:49 308 1
原创 基于标准外设库的LED流水灯
第一个参数 uint32 RCC_APB2Periph,是指定的端口,我们这里使用GPIOA,故在主函数中写 RCC_APB2Periph_GPIOA。PA5处LED灯先点亮,经过0.3s端口处电平由低变为高同时PB10的端口电平由高变低,LED灯点亮,每次端口的低电平持续时间为0.3s。,用于编译头文件#include"stm32f10x.h",之后如下图依次点击,将包含头文件的文件夹添加进来,可以让工程优先在添加进来的文件夹中搜索头文件,最后点击。在弹出的窗口中,我们新建观察引脚。
2023-10-14 16:52:52 111
原创 STM32F103的流水灯点亮版本1(寄存器地址操作)
将将GPIOA-5配置成推挽模式输出,且最大速度为2MHz,根据数据手册可以知道它属于端口配置低寄存器模块,CNF5和MODE5位为0,其余位为F,即GPIOB_CRH&=0xFF0FFFfF;将GPIOB-9配置成推挽模式输出,且最大速度为2MHz,根据数据手册可以知道它属于端口配置高寄存器模块,CNF9和MODE9位为0,其余位为F,即GPIOB_CRH&=0xFFFFFF0F;可以看到外设时钟使能寄存器,偏移量为0x18,起始地址为0x4002 1000,因此该寄存器的地址为0x4002 1018。
2023-09-29 11:21:24 108
原创 Ubuntu、stm32下的程序内存分配问题(堆栈、局部全局变量等)
stm32F10x系列单片机在ARM Cortex-M系列的基础上,还具有自己的存储器布局和外设寄存器映射。具体的映射关系和地址范围可以在芯片的参考手册中找到,手册会指定Flash、SRAM、寄存器和其他外设的起始地址和范围,以及访问这些地址时的读写权限和功能描述。ARM Cortex-M系列是一个32位嵌入式处理器架构,stm32F10x是一系列基于Cortex-M系列内核的STM32单片机。存储器地址映射指的是将不同类型的存储器(包括Flash、SRAM、外设寄存器等)映射到处理器地址空间的过程。
2023-09-29 11:15:28 115
原创 编译器背后的故事
GCC 是编译工具,它的意思是 GNU C Compiler。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compiler Collection 也即是 GNU 编译器家族的意思了。
2023-09-29 10:23:17 43
原创 STM32/51单片机编程入门(点亮LED)
本次实验的内容比较多,遇到很多的环境配置问题,比如大二期间一直使用的keil 4和Proteus 8都不再适用,所以只能重新安装或者。
2023-09-24 17:40:45 394 3
原创 Ubuntu系统使用gcc和Makefile编译C程序
本次实验我了解到了gcc作为一种编译工具将c语言源程序编译为可执行文件的过程,同时也初步了解到了makefile工具,可以想见在有多个源文件的项目中引入Makefile是很有必要的。
2023-09-13 21:12:34 94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人