- 博客(13)
- 收藏
- 关注
原创 【无标题】
在这个过程中,我遇到了很多困难和挑战,但最终还是成功地完成了实验。总之,这个实验让我受益匪浅,不仅提高了我的编程能力,还让我对嵌入式系统有了更深入的了解。编译,将代码烧录到STM32F103中,BOOT0置零,按下Reset按钮,可以看到PC13LED灯闪烁,证明代码没有问题。此处修改为5(该处宏定义设置堆空间的大小,STM32F103C8T6的RAM只有20K,所以要改小一点)由于我们使用了printf函数,需要在usart.c文件中添加以下代码完成printf重定向。,选中以下文件,Add。
2023-11-27 23:00:39 325 1
原创 【无标题】
总的来说,STM32F103的RTC功能非常强大,可以实现精确的时间和日期记录,以及定时功能。在使用RTC时,需要注意时钟源的选择、初始化的设置、时间和日期的设置、定时功能的实现以及中断的处理等方面,以确保RTC的准确性和稳定性。RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。● 2个分离的时钟:用于APB1接口的PCLK1和RTC时钟(RTC时钟的频率必须小于PCLK1时钟 频率的四分之一以上)。● 32位的可编程计数器,可用于较长时间段的测量。
2023-11-25 18:31:42 362
原创 【无标题】
随着智能化应用的不断发展,汉字显示在各个领域中扮演着重要的角色,从工业控制到智能家居,从智能手表到智能车载系统,汉字显示都在为用户提供更加友好和直观的信息交互体验。我可以通过读取点阵汉字的字模数据,并结合OpenCV的图像处理功能,实现汉字的显示、识别和处理。通过本实验,你将能够在嵌入式系统中实现点阵汉字的字模读取与显示,为你的嵌入式应用增加更加丰富和个性化的汉字显示效果。然而,现在的嵌入式系统已经具备了足够的计算能力和存储资源,可以通过读取字模数据并进行适当的处理,实现简洁高效的点阵汉字显示。
2023-11-19 21:25:36 33
原创 【无标题】
通常情况下,如果硬件上已经有集成的硬件I2C接口,建议使用硬件I2C以提供更高的性能和可靠性。在数据采集方面,我们通过读取AHT20传感器的温度和湿度寄存器,获取了实时的温湿度数据。从图中可以看出I2C在通讯的时候,只有在SCL处于高电平时,SDA的数据传输才是有效的。总的来说,本次实验帮助我们深入理解了I2C协议的应用和AHT20温湿度传感器的工作原理,为我们后续的物联网和嵌入式系统开发提供了很好的基础。软件I2C和硬件I2C是两种不同的实现方式,用于在嵌入式系统和电子设备中进行I2C通信。
2023-11-19 20:59:50 29
原创 【无标题】
接着,我们采用定时器的PWM模式,通过配置定时器的参数和相关寄存器,可以实现LED以呼吸灯方式渐亮渐灭。通过实际操作和观察波形,我们能够更好地掌握和理解定时器和PWM的工作原理,为后续的项目和应用提供了基础和经验。首先,使用定时器的计数方式,通过配置定时器的参数和中断处理函数,可以实现LED以2秒的频率周期性地亮-灭。在实验过程中,我们需要仔细阅读相关的STM32定时器和PWM模式的文档,理解其寄存器的配置方法和中断处理函数的编写。基本定时器是一个简单的定时器,通常用于生成精确的时间延迟。
2023-11-05 19:58:24 27
原创 【无标题】
当上位机给stm32发送字符“stop”后,stm32暂停发送“hello windows!发送一个字符“start”后,stm32继续发送;//标志 0:停止发送 1.开始发送。//当输入的指令为0时,发送提示并改变flag。//当输入的指令为1时,发送提示并改变flag。//当输入不存在指令时,发送提示并改变flag。//指令 0:停止 1:开始。// 初始化串口通信。
2023-11-02 20:25:27 28
原创 【无标题】
同时也了解到了makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接-----但不是所有的文件都需要重新编译。所谓“自动化编译”,一旦写好,就只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;
2023-11-01 19:07:12 29 1
原创 【无标题】
用标准外设库方式使用某个端口GPIOx端口管脚控制几个LED灯,轮流闪烁,间隔时长1秒。使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形。A0-A7管脚的LED依次闪烁,间隔1S。基于标准外设库的LED流水灯。
2023-11-01 19:04:12 26 1
原创 【无标题】
所以总体来说,动态库更适合代码模块化、更新频繁的场景,静态库更适合程序体积要求小或者安全性要求高的场景。gcc -o hello main.c -L. -lmyhello或gcc main.c libmyhello.so -o hello。创建一个目录,并切换到该目录下面,分别编写hello.c hello.h main.c。3)先生成main.o gcc -c main.c。动态库文件命名规范:以lib作为前缀,是.so文件。静态库文件命名规范:以lib作为前缀,是.a文件。创建动态库的工具:gcc。
2023-11-01 18:54:09 30 1
原创 【无标题】
(理论概念-常见嵌入式岗位面试题) 与PC平台上的一般程序不同,嵌入式C程序经常会看见 register和volatile 关键字,请解释这两个变量修饰符的作用,并用C代码示例进行说明。所以总体来说,51单片机资源简单,I/O操作直观,开发门槛低,所以LED点亮编程难度小于STM32。嵌入式C程序代码对内存(RAM)中的各变量的修改操作,与对外部设备(寄存器—>对应相关管脚)的操作有哪些相同与差别?所以总体来说,变量操作对象是内存,寄存器操作对象是外设,二者在操作目的和方法上有明显差异。
2023-11-01 18:43:32 34 1
原创 【无标题】
总的来说,GPIO_ResetBits/GPIO_SetBits方式效率最高,实验1: STM32F103的流水灯点亮版本1(寄存器地址操作)GPIO_WriteBit单独设置引脚方式灵活性最好,GPIO_WriteBit以数字设置电平方式最简洁,// STM32标准库三种方式控制GPIO输出。可以选择合适自身需求的方式进行GPIO输出控制。利用proteus进行仿真。
2023-11-01 16:22:52 30
原创 【无标题】
综上所述,"USB/TTL转232"模块通过CH340芯片将USB信号转换为TTL电平信号,并可选地将TTL电平转换为RS-232电平,从而实现USB与RS-232设备或TTL逻辑电平设备之间的串行通信。2)在完成以上任务基础,继续扩展功能:当上位机给stm32发送一个字符“#”后,stm32暂停发送“hello windows!了解"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。"USB/TTL转232"模块是一种转换器,用于将USB接口转换为串口RS-232电平或TTL电平。
2023-10-26 20:40:26 39
原创 【无标题】
理解如何使用STM32的HAL库函数,简化了底层硬件控制,减少了代码的复杂性。通过诊断和解决LED灯工作不正常的问题,提高了调试技能。通过实际项目,将学到的理论知识应用到实际情境,深化了对嵌入式系统的理解。对STM32微控制器的初学者来说,这是一个很好的入门项目,它可以作为更复杂项目的基础。本次的基于HAL库的LED流水灯实验已完成,通过此次课程学习,我更加扎实地掌握了有关基于HAL库的LED流水灯方面的知识,也通过解决一些实际问题发现了我在学习过程中的知识欠缺与经验不足,践行过而能改,善莫大焉的知行观。
2023-10-25 09:48:06 21
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人