
嵌入式系统基础
文章平均质量分 91
嵌入式系统基础学习
Uaena.&
这个作者很懒,什么都没留下…
展开
-
STM32+W5500网络通信
目录一、W5500模块实现数据通信(一)模块原理(二)代码实现二、STM32+W5500+modbus协议编程(一)modbus协议(二)代码实现参考文献掌握W5500网络模块的特点,参考模块厂商配套资料,完成TCP数据通信、DHCP自动获取IP的程序设计。在此基础上,实现应用层modbus、httpd(web服务)协议编程。一、W5500模块实现数据通信(一)模块原理1.原理介绍Niren_W5500模块是一款基于WIZnet W5500芯片的以太网模块,是泥人电子继 Niren_W5100原创 2022-01-06 13:16:22 · 1963 阅读 · 0 评论 -
RT-thread Nano移植
目录一、添加软件包二、新建工程三、修改代码参考文献一、添加软件包RT-Thread Nano软件包地址:https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc打开CubeMX,选择Help下的Manage embedded software packages选择From Url…点击New,并添加上述的Nano软件包地址https://www.rt-thread.org/download/cube/RealThread原创 2021-12-31 09:11:28 · 1500 阅读 · 0 评论 -
Altium Designer 18 绘制一个stm32最小系统的电路原理图
目录一、Altium Designer下载安装(一)下载(二)安装(三)破解(四)汉化二、绘制stm32电路原理图参考文献一、Altium Designer下载安装(一)下载链接:提取码:(二)安装解压双击(三)破解(四)汉化二、绘制stm32电路原理图参考文献【1】Altium Designer 16下载与安装教程【2】【上篇】Altium Designer绘制stm32最小系统的电路原理图...原创 2021-12-21 19:45:32 · 304 阅读 · 0 评论 -
Keil虚拟仿真逻辑仪和 真实逻辑仪(SaleaeLogic16)
目录一、Keil虚拟仿真逻辑仪二、三、参考文献观察工程 STM32F103C8T6基于HAL库uCOS-III移植 LED输出电平和串口通信的波形。一、Keil虚拟仿真逻辑仪1.打开工程2.配置3.调试4.选择逻辑分析5.参数设置6.Run出错,创建一个TXT文件,并添加以下内容(位置在MDK-ARM下)修改后缀为.inimap 0x40000000, 0x40007FFF read write // APB1map 0x40010000, 0x400157FF read wr原创 2021-12-13 14:08:20 · 433 阅读 · 0 评论 -
STM32F103C8T6基于HAL库制作RTC时钟
目录一、RTC时钟原理二、新建工程三、修改代码四、烧录运行参考文献了解实时时钟RTC的原理。STM32芯片自带RTC,因此不须像其他MCU需外接RTC模块。请编程实现STM32的日历读取、设置和输出。要求:1)读取RTC初始时间,验证是否为 1970年1月1日零分零秒;2)将RTC时间调整为当前时间,并以 2021年x月x日x分x秒的格式从串口输出(或输出到OLED屏),每1s改变一次;3)如果输出内容中需加入“星期x”,请修改代码。一、RTC时钟原理1.简介RTC (Real Time原创 2021-12-10 08:39:42 · 6801 阅读 · 0 评论 -
STM32F103C8T6基于HAL库uCOS-III移植
目录移植μC/OS-III到STM32获取STM32的裸机工程模板下载μC/OS-III源码建立工程参考文献移植μC/OS-III到STM32获取STM32的裸机工程模板STM32的裸机工程模板我们直接使用野火STM32开发板配套的固件库例程即可。 这里我们选取比较简单的例程—“GPIO输出—使用固件库点亮LED”作为裸机工程模板。 该裸机工程模板均可以在对应板子的A盘/程序源码/固件库例程的目录下获取到,下面以野火F103-霸道板子的光盘目录为例, 具体见图 STM32裸机工程模板在光盘资料中的位原创 2021-12-03 11:35:29 · 352 阅读 · 0 评论 -
基于STM32实现OLED屏显(显示数据、温湿度、滚动长字符)
目录一、SPI介绍二、0.96寸OLED显示数据三、显示AHT20的温度和湿度四、上下或左右的滑动显示长字符参考文献一、SPI介绍1.SPI简介SPI总线是一种4线总线,因其硬件功能很强,所以与SPI有关的软件就相当简单,使中央处理器(Central Processing Unit,CPU)有更多的时间处理其他事务。正是因为这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200。SPI是一种高速、高效率的串行接口技术。通常由一个主模块和一个或多个从模块组成,主模块选择一个从模块原创 2021-11-26 09:35:48 · 25822 阅读 · 2 评论 -
AHT20温湿度传感器数据采集
目录一、I2C总线通信协议学习(一)I2C1.I2C协议简介2.I2C物理层和协议层3.硬件I2C和软件I2C(二)温湿度采集1.AHT20芯片的相关信息了解2.硬件连接3.代码实现4.烧录运行二、理解OLED屏显和汉字点阵编码原理参考文献一、I2C总线通信协议学习(一)I2C1.I2C协议简介I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系原创 2021-11-24 15:34:38 · 6497 阅读 · 0 评论 -
汉字点阵原理&字模读取与显示
目录一、 串口传输文件的练习二、学习理解汉字的机内码、区位码编码规则和字形数据存储格式三、参考文献一、 串口传输文件的练习将两台笔记本电脑,借助 usb转rs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。二、学习理解汉字的机内码、区位码编码规则和字形数据存储格式在Ubuntu下用C/C++(或python) 调用opencv库编程原创 2021-11-13 21:52:56 · 4494 阅读 · 0 评论 -
STM32中断与DMA通信编程
目录一、用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。二、 采用串口中断方式重做上周的串口通信作业。三、STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据。一、用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯原创 2021-11-09 18:54:46 · 683 阅读 · 0 评论 -
串口通信小试牛刀——STM32串口通信USART输出Hello world
目录一、USART介绍二、寄存器地址方式(一)新建Keil项目(二)编写代码并编译(三)烧录(四)串口输出结果三、HAL库方式(一)CubeMX创建项目(二)main.c代码修改(三)烧录(四)串口输出结果参考文献一、USART介绍通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART(Universal Asynchr原创 2021-10-29 01:06:29 · 1117 阅读 · 0 评论 -
串口通信小试牛刀——GPIO端口完成3只LED灯的周期闪烁
目录一、 工作原理二、安装 stm32CubeMX三、用GPIO端口完成3只LED红绿灯的周期闪烁四、完成一个STM32的USART串口通讯程序五、使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形参考文献一、 工作原理串口通信协议串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有原创 2021-10-29 00:02:02 · 3901 阅读 · 0 评论 -
STM32F103寄存器方式点亮LED流水灯
目录一、相关原理(一)(二)二、程序设计思路(一)(二)三、分别用汇编语言、C语言实现一、相关原理(一)(二)二、程序设计思路(一)(二)三、分别用汇编语言、C语言实现...原创 2021-10-20 00:51:35 · 307 阅读 · 0 评论 -
Ubuntu16/18系统下opencv图像库编程学习
目录安装opencv二级目录三级目录安装opencv1.下载安装包下载地址:https://www.bzblog.online/wordpress/index.php/2020/03/09/opencvdownload/2.解压安装包将安装包复制到桌面(有些人是复制到home主目录下),再解压。解压命令:unzip opencv-3.4.11.zip进入到解压后的文件包:cd opencv-3.4.113.进入root用户权限,更新一下sudo susudo apt-get up原创 2021-10-18 15:05:26 · 924 阅读 · 0 评论 -
Keil下STM32的C与汇编语言混合编程
目录一、新建项目(一)新建工程(二)添加源文件(三)编写代码二、C语言调用汇编函数(一)无参数调用(二)有参数调用三、汇编函数调用C语言四、总结一、新建项目(一)新建工程1.点击Project->New uVision Project。2.命名并保存。3.选择仿真芯片。4.CMSIS下选择CORE,Device下Startup(其中包含了启动文件)打勾,点击OK。(二)添加源文件1.右击Source Group 1,点击Add New Item to Group‘Source原创 2021-10-15 09:58:23 · 244 阅读 · 0 评论 -
Gcc不是一个人在战斗—GCC编译器背后的故事
目录一、GCC简介(一)含义(二)常用命令(三)GCC编译工具1.Gcc-Core2.Binutils3.glibc库二、GCC编译过程(一)简单示例1.预处理2.编译3.汇编4.链接(二)多个程序文件编译三、ELF文件一、GCC简介(一)含义GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC 很快地扩展,变得可处理 C++。后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处原创 2021-10-03 22:45:06 · 261 阅读 · 0 评论 -
用gcc生成静态库.a和动态库.so
目录一、实例准备二、静态库的生成和使用三、动态库的生成和使用在Linux中,有两种函数库,以.a后缀命名的是静态函数库,以.so后缀命名的是动态函数库。静态函数库:在编译链接时候,程序所需要的函数会从静态函数库中拷贝到执行文件中。当程序运行的时候,就不需要链接外部的函数库了。动态函数库:在编译链接时,程序所需要的函数不会从动态函数库中拷贝出来,而是在程序运行的时候,才会将所需要的函数加载进来。一、实例准备二、静态库的生成和使用三、动态库的生成和使用参考文献https://blog.原创 2021-10-03 18:01:15 · 185 阅读 · 0 评论 -
搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写
目录1、搭建并配置Keil嵌入式开发环境1.1 Keil MDK-ARM下载1.2 Keil MDK-ARM安装1.3 Keil MDK-ARM注册2、基于STM32汇编程序的编写2.1记录build生成的 hex文件各段的大小,了解Hex文件格式及其前8个字节内容含义2.2学习在没有硬件条件下进行仿真调试的方法,观察ARM寄存器变化状况。1、搭建并配置Keil嵌入式开发环境1.1 Keil MDK-ARM下载官网下载地址https://www.keil.com/download/product/原创 2021-10-01 16:43:27 · 7041 阅读 · 0 评论 -
Ubuntu系统用gcc命令行方式和Makefile方式编译主程序
在Ubuntu系统下用gcc命令行方式和Makefile方式编译C程序一、用gcc命令行方式编译C程序二、在windows系统下编译C程序三、Makefile方式编译C程序一、用gcc命令行方式编译C程序二、在windows系统下编译C程序三、Makefile方式编译C程序...原创 2021-09-16 18:52:34 · 324 阅读 · 0 评论