- 博客(16)
- 收藏
- 关注
原创 嵌入式RTOS编程
MDK-ARM\uCOS-III\Ports\ARM-Cortex-M3\Generic\RealView路径下选中以下文件,Add添加。MDK-ARM\uC-LIB\Ports\ARM-Cortex-M3\RealView路径下选中下图绿框文件,Add添加。MDK-ARM\uCOS-III\Source路径下选中以下全部 .c .h 文件,Add添加。MDK-ARM\uC-CONFIG路径下选中以下全部文件,Add添加。MDK-ARM\uC-BSP路径下选中以下全部文件,Add添加。
2022-11-06 21:12:52
351
1
原创 基于IIC和SPI协议的OLED显示
SPI(Serial Peripheral Interface)就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。上升沿发送、下降沿接收、高位先发送。上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。下降沿到来的时候,sdi 上的电平将被接收到主设备的寄存器中。
2022-11-03 10:31:33
1178
原创 基于IIC和SPI协议的温湿度采集
在消费电子,工业电子等领域,会使用各种类型的芯片,如微控制器,电源管理,显示驱动,传感器,存储器,转换器等,他们有着不同的功能,有时需要快速的进行数据的交互,为了使用最简单的方式使这些芯片互联互通,于是I2C诞生了,I2C(Inter-Integrated Circuit)是一种通用的总线协议。它是由Philips(飞利浦)公司,现NXP(恩智浦)半导体开发的一种简单的双向两线制总线协议标准。
2022-11-03 09:53:13
298
原创 定时器&PWM练习2
修改完成后,保存调试生成hex文件,然后通过串口助手将文件烧录完成后,实验就完成了。打开刚刚生成的代码找到并打开main.c文件,在此处添加代码。选择好芯片,创建新工程,接下来就是配置的问题。意为开始TIM2的通道2,输出PWM。做好一切准备后就可以保存生成代码了。意为定义一个变量,用来存储占空比。如图所示,和上一个实验的配置相同。然后在如图位置添加以下代码。接下来找到图所示位置。
2022-10-30 12:30:39
236
原创 定时器&PWM练习
这里我们使用定时器2来实现定时的功能。如图所示,依次点击位置1,选中定时器2;位置2,配置定时器2的时钟源为内部时钟;位置3,分频系数为71,向上计数模式,计数周期为5000,使能自动重载模式。分频系数那里虽然写的是71,但系统处理的时候会自动加上1,所以实际进行的是72分频。然后调试后生成hex文件,通过串口助手烧录,再根据配置连接上led灯就完成了。打开刚刚生成的文件,找到main.c文件中。如图,生成定时器2中断优先级配置代码。如图,开启定时器2的中断。
2022-10-30 12:07:15
114
原创 DMA (串口DMA发送接收)
DMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。
2022-10-23 12:01:09
2433
原创 HAL库中断方式进行串口通信
char c;//指令 0:停止 1:开始 char message [ ] = "hello Windows\n";//输出信息 char tips [ ] = "CommandError\n";//提示1 char tips1 [ ] = "Start.....\n";//提示2 char tips2 [ ] = "Stop......\n";//提示3 int flag = 0;//标志 0:停止发送 1.开始发送在此次实验中要求运用字符串对输出进行中断,未能及时完成,之后会进行思考完善。
2022-10-23 11:31:30
1069
原创 stm32外部中断模式控制灯亮灭
特别注意图中三个地方,前两个红圈,提醒在保存代码的路径和文件名不要出现中文,否则保存的代码会出问题。,将P1设置为高电平,P7为低电平,这里可以对引脚进行命名,方便调试,但也可以不用修改。红圈处的代码是我后来自己加的,原处这里没有代码,找到这个地方,将以下代码粘贴到此处。找到keil上方工具栏中的魔法棒的图标,检查Output处是否勾选了。打开刚刚生成的keil代码文件,找到main.c文件中的这个地方。烧录成功后,就可以根据引脚功能连接灯,并对灯进行调试。生成代码之前,还需要调整相关设置,
2022-10-23 11:04:20
246
原创 搭建STM32开发环境——STM32CubeMX,Keil5
GPIO mode:推挽输出和开漏输出两者模式,两者模式的区别在于推挽输出中1代表VCC,0表示GND;下面第一个按钮是从本地安装(已经在本地下载了对应的固件库),Install now是通过网络下载,一般不推荐这种方式。Maxinum output speed:最大的输出速度,一般选择low就可以了。GPIO output level:有low和high两种选择,一般选择low。选择File,点击New Project,选择需要的芯片类型。选择Configuration,接着选择GPIO。
2022-10-16 23:18:55
1068
原创 基于 MDK 创建 STM32 汇编程序:串口输出 Hello world
通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART(Universal Asynchronous Receiver and Transmitter),它是在 USART 基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 UART。
2022-10-16 22:08:31
352
原创 用寄存器&HAL库完成LED流水灯程序
寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行送入数据,也只能并行输出。移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出,十分灵活,用途也很广。
2022-10-10 13:24:16
383
原创 ARM汇编语言编程入门实践
分析第一行的内容:020000040800F2,可以看成:0x02,0x00,0x00,0x04,0x08,0x00,0xF2。0x08,0x00 :该行两个字节的数据,数据类型是 04 ,即该行记录的是一个拓展地址(0x08 0x00 是地址信息,用法是将该地址(0x0800
2022-10-04 19:26:08
544
原创 Opencv的基本使用和示例图片、视频
由于过程太过复杂,我安装的时候忘记截图了,不过可以看看下面这个博客,堪称保姆级教学https://blog.csdn.net/ssj925319/article/details/109231145。此时在code文件夹里面就会出现test.png的新图片格式,且呈现效果不同。由于电脑摄像头坏了,录制的视频是黑屏,我就不放视频截图了。输入**g++ test2.cpp -o test2。因为文件时.cpp文件,所以不再是运用gcc命令。输入执行命令**./test1**code文件生成一个.avi文件。
2022-09-25 18:35:35
1449
原创 gcc不是一个人在战斗,了解EFF文件格式
为创建可执行文件,链接器必须要完成的主要任务是:符号解析(把目标文件中符号的定义和引用联系起来)和重定位(把符号定义和内存地址对应起来然后修改所有对符号的引用)。~在 Linux 系 统中,gcc 编 译链 接时 的动 态库 搜索 路径 的 顺序 通常 为:首 先从 gcc 命 令的参 数-L 指 定的 路径 寻找;C 标准库定义了一组标准头文件,每个头文件中包含一些相关的函数、变量、类型声明和宏定义,譬如常见的 printf 函数便是一个 C 标准库函数,其原型定义在 stdio 头文件中。
2022-09-25 12:53:31
296
原创 用gcc生成静态库和动态库
先在终端窗口创建并打开有个文件,以备之后的程序存储所用。在运行之前,需要先将动态库复制到此目录下。在创建函数库前,我们需准备示例的程序。Esc退出到命令模式:wq保存并退出。完成编写后,同样输入:wq保存并退出。同样可以输入ls -l查看是否生成。然后输入./main执行程序,输出。同样也是输入ls -l可以查看。,将文件转换成.o格式文件。同理生成sub.a文件格式。同样编写完后记得保存。连接静态库,其实就是。./main运行程序。
2022-09-24 23:10:35
787
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人