- 博客(15)
- 收藏
- 关注
原创 【嵌入式知识15】嵌入式RTOS编程(uc/OS)
本文以uc/OS为例,将其移植到stm32F103C8T6上,构建至少3个任务(task):其中两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制;另外一个task以2s周期通过串口发送“hello uc/OS! 欢迎来到RTOS多任务环境!”。进入 Micrium 公司官网下载中心:http://micrium.com/downloadcenter/然后按照提示注册、登陆账号并下载链接:https://pan.baidu.com/s/10RqsDRecbmVteWmDv2oUNQ提
2022-11-05 00:51:50
1125
原创 【嵌入式知识14】使用STM32F103实现OLED屏显和字符串滑动显示
SPI是串行外设接口Serial Peripheral Interface的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议。SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。
2022-11-04 22:58:29
1341
原创 【嵌入式知识13】基于I2C协议的AHT20温湿度传感器的数据采集
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。它支持设备之间的短距离通信,经常用于处理器和一些外围设备之间的接口通信。I2C总线的标准通信速率是100Kbps,快速模式是400Kbps,高速模式支持3.4Mbps。I2C通讯协议(Inter-Integrated Circuit)引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备。实现I2C需要两根信号线完成信息交换—SCL时钟信号线和。
2022-11-04 21:36:05
1716
原创 【嵌入式知识12】使用PWM实现LED呼吸灯
PWM(Pulse Width Modulation)即脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术;它是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。实际上,PWM是使用脉冲占空比拟合不同波形,即通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。如图,可以用一系列等幅不等宽的脉冲来代替一个正弦半波。
2022-10-30 23:16:12
6975
原创 【嵌入式知识11】使用STM32定时器中断控制串口发送“hello windows!”
本次实验学习了通过定时器Timer方式实现时间的精准控制,设置一个5秒的定时器,每隔5秒串口发送“hello windows!”;同时设置一个2秒的定时器,让LED等周期性地闪烁。实验过程中,对定时器的配置是最开始需要注意的,不然CubeMX导出的文件将出现问题。相比于Delay函数,定时器中断能更准确地把握时间,中断一触发,就执行中断服务函数中的功能。定时器中断与串口通信的结合,完成了中断控制串口通信的功能,这也让我对所学知识有了更深一步的认识。
2022-10-30 22:12:18
4770
3
原创 【嵌入式知识10】分别采用串口中断方式和串口DMA方式进行串口通信
同步串行:数据传输以数据块(一组字符)为单位,在一个数据块内,字符与字符间无间隔,收发双方依靠独立的时钟线进行信号的同步。适用于大批量的数据传输。异步串行:数据传输以单个字符为单位,字符和字符之间的间隙任意,字符内部每一位持续的时间相同。收发双方没有专门的时钟信号,而是依靠事先约定的字符格式和通信速率来完成通信。用于在外设与存储器之间以及存储器与存储器之间进行高速数据传输。DMA传输过程的初始化和启动由CPU完成,传输过程由DMA控制器来执行,无需CPU参与,从而节省CPU资源,提高利用率。
2022-10-24 23:22:15
4116
原创 【嵌入式知识09】采用stm32中断模式编程,点亮LED
1.中断是什么呢?中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。中断分为同步中断和异步中断。同步中断——同步中断是当指令执行时由 控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后 CPU 才会发出中断异步中断——异步中断是由其他硬件设备依照 CPU 时钟信号随机产生的。2.中断的基本概念数据传输方式处理器和外部设备的数据传输方式分为无条件传输查询方式中断方式。
2022-10-23 20:25:35
930
原创 【嵌入式知识08】STM32的USART串口通信,给上位机连续发送Hello Windows!
串口通信(Serial Communication)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。串口通信是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。
2022-10-18 22:28:20
5206
原创 【嵌入式知识07】借助stm32CubeMX,使用STM32F103C8T6点亮LED流水灯
安装 stm32CubeMX,用cubemx完成初始化过程,采用HAL库编程实现。在Keil下用软件仿真运行上面代码,并用虚拟逻辑分析仪观察 对应管脚上的输出波形(高低电平转换),看是否是1秒的周期。
2022-10-13 23:12:30
2244
原创 【嵌入式知识06】使用STM32F103C8T6HAL库编程完成LED流水灯
学习和理解STM32F103系列芯片的地址映射和寄存器映射原理;了解GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)。
2022-10-13 22:06:46
1145
原创 【嵌入式知识02】Linux下用GCC生成静态库和动态库过程
本文主要介绍什么是静态库与动态库以及他们的区别,在Linux中如何通过gcc创建与使用静态库、动态库。
2022-09-27 20:49:25
183
原创 【嵌入式知识04】 Ubuntu系统下基于Opencv完成图像程序编程
本次我们将通过学习opencv图像库编程,了解如何借助第三方库函数完成一个综合程序设计。
2022-09-26 13:49:27
778
原创 【嵌入式知识02】Linux下用GCC生成静态库和动态库过程
本文主要介绍什么是静态库与动态库以及他们的区别,在Linux中如何通过gcc创建与使用静态库、动态库。
2022-09-25 23:34:40
1607
1
原创 【嵌入式知识01】在ubuntu系统下进行C语言程序的编译
以上就是本文的全部内容,本文仅仅简单介绍了一下Ubuntu 18.04 ,在Ubuntu系统下用C语言编写 hello word 的程序,并用Makefile方式编程程序。本次学习加深了我对相关知识的进一步认识,受益良多。
2022-09-10 23:02:48
2819
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人