- 博客(18)
- 收藏
- 关注
原创 stm32移植uCOS-III
在本章,将详细的介绍uc/os-lll以及如何移植uc/os-lll和在此基础上进行建立多线程的具体操作。UCOS是Micrium公司出品的RTOS类实时操作系统, UCOS目前有两个版本:UCOSII和UCOSIII。UCOSIII是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制,提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。UCOSIII是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的,
2023-11-26 16:27:20 614 2
原创 数字温度计
在本章的学习当中将通过配置内部时钟和配置IIC获取温湿度,通过8线OLED显示,其中拓展如何对printf进行重定义显示在屏幕上。通过设置备份域控制寄存器(RCC_BDCR)里的RTCSEL[1:0]位,RTCCLK时钟源可以由HSE/128、LSE或LSI时钟提供。除非备份域复位,此选择不能被改变。LSE时钟在备份域里,但HSE和LSI时钟不是。因此:● 如果LSE被选为RTC时钟:─ 只要VBAT维持供电,尽管VDD供电被切断,RTC仍继续工作。
2023-11-24 21:40:16 136 1
原创 OLED屏显示自己的姓名和学号及温湿度
理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:显示自己的学号和姓名;显示AHT20的温度和湿度;OLED(Organic Light-Emitting Diode),又称为有机电激光显示、有机发光半导体(Organic Electroluminescence Display,OLED)。OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。
2023-11-20 13:23:39 494 1
原创 【无标题】电脑间利用串口实现传输文件
串口传输文件的练习。将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。
2023-11-20 09:19:12 157 1
原创 OpenCV显示图片及汉字
学习理解汉字的机内码、区位码编码规则和字形数据存储格式。在Ubuntu下用C/C++(或python)调用opencv库编程显示一张图片,并打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点阵字形字库(压缩包中的文件HZKf2424.hz)中对应字符的字形数据,将名字和学号叠加显示在此图片右下位置。
2023-11-20 08:53:34 510 1
原创 基于HAL库的IIC协议读取温湿度传感器
今天主要讲解IIC协议是什么,以及如何通过IIC对AHT20传感器进行通信和信息获取。STM32的硬件IIC过于复杂,在此我们只做简单了解不做深究。I2C模块接收和发送数据,并将数据从串行转换成并行,或并行转换成串行。可以开启或禁止中断。接口通过数据引脚(SDA)和时钟引脚(SCL)连接到I2C总线。允许连接到标准(高达100kHz)或快速(高达400kHz)的I2C总线。
2023-11-15 11:26:30 424
原创 基于HAL库的串口DMA方式收发数据
随着不断的学习,我们发现对单片机的需求越来越高,当然运用串口通信也越来越频繁,但是在我们之前的学习当中总是串口每接受一个字节就进行中断,非常浪费处理资源,那么有什么方式可以做到只有接收到完整的数据过后才会触发中断的吗?今天,将介绍另一种方式使用串口,使之完成上诉,那就是串口的DMA方式接受。串口DMA收发实验中遇到的问题和收获总结:问题:DMA配置错误:在配置DMA时,可能会出现设置错误的情况,导致数据无法正确传输。例如,未正确设置DMA通道、地址错误等。
2023-10-31 13:36:09 2547 3
原创 基于HAL库的串口中断通信
在实际学习stm32中,串口通讯不仅仅时一种设备与设备通信的外设,更是在调试过程中的一种重要手段,在本文当中,将着重介绍如何使用串口中断并进行单片机与上位机的通信。接口通过三个引脚与其他设备连接在一起(见图248)。任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据。TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,TX引脚处于高电平。
2023-10-26 11:31:10 965
原创 【无标题】基于HAL库的外部中断和流水灯
在本章中将着重解释外部中断原理和基于HAL对外部中断函数进行编写,并通过外部中断控制流水灯的工作与暂停更好地展示外部中断的工作。通过本次实验了解中断原理,学会运用HAL库对中断程序进行配置和编写,提升自己程序编写能力。
2023-10-23 11:25:05 148
原创 基于标准外设库的LED流水灯及通过示波器查看波形
本文章将通过流水灯实验主要讲述如何建立并添加外设库以及通过一种循环延时1S,并通过示波器观察输出引脚波形,观察输出波形是否正确以及延时的实际周期并分析。本节主要学习了库函数的引入和对STM32 工作的时间进行了解,通过循环函数占用CPU对系统进行延时,总的来说用循环的方法进行延时还是不太准确,如果需要更准确的延时还是需要用到定时器,在后续将会发出关于定时器延时的配置。
2023-10-16 15:53:17 254 1
原创 各种变量以及堆、栈的概念与实操
本文将通过在Ubuntu系统下和STM32单片机中,进行编程对全局变量、全局常量、局部变量、静态变量、堆、栈等进行重温与加深。
2023-10-06 00:41:34 507 4
原创 GCC背后的故事
本文通过几个简单的程序实例,学习gcc命令生成静态库.a 和动态库.so的方法和库的使用。以及了解gcc命令背后的编译文章,分析了解学习ELF文件格式。通过使用GCC命令生成动态库和静态库的练习,基本上了解了动态库和静态库的生成过程以及其中的优缺点。两者差异比较较为明显。
2023-10-06 00:17:56 48 1
原创 基于STM32F103C8T6的流水灯实验(寄存器地址操作)
STM32F103C8T6基于 ARM 32位 Cortex™-M3内核,电压使用范围是2.0V ~ 3.6V,工作频率最高可以达到72MHz,内部采用64K或128K字节 Flash程序存储器,以及高达20K字节的 SRAM数据存储器;内置 CRC循环冗余校验以及 96位编码( 24位的十六进制数)的芯片唯一序列号。
2023-09-25 19:19:01 389 1
原创 寄存器与地址
本文章描写一些对STM32寄存器与地址的概念理解以及在嵌入式编程中register和volatile 变量的区别与示例说明。提示:以下是本篇文章正文内容,下面案例可供参考。
2023-09-24 15:42:27 627 2
原创 一个简单的Stm32程序设计(点灯)
在学习单片机的过程中了解原理是必不可少的,本文章将通过寄存器的方式对Stm32单片机进行一个简单的点灯操作。
2023-09-24 14:49:43 382 1
原创 基于51单片机的交通灯仿真
在电子学习过程中,学会使用一些常用的软件进行仿真是必不可少的,在本篇中将介绍proteus软件的安装及通过仿真51程序来演示基本操作。Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
2023-09-24 14:15:50 351 1
原创 嵌入式linux开发基础
c编译和汇编,但不链接。-o指定输出文件-s只编译(不汇编或链接)-E仅执行预处理(不要编译、汇编和链接)1目标文件:依赖文件2命令13命令245解释:目标文件在依赖文件的条件下执行命令6注意:makefile中的命令必须以tab开始,不能使用空格。1.熟悉运用Linux系统的基础命令;2.了解gcc、makefile等重要命令;3.学会Linux系统下的c语言程序编写。
2023-09-14 20:27:39 77 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人