logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

STM32F1 端口复用、端口(部分和完全)重映射

端口复用功能STM32 有很多的内置外设(比如:串口、ADC、DAC等是独立的模块和内核连接在一起),这些外设的外部引脚都是与 GPIO 复用的。也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。大家都知道,MCU 都有串口,STM32 有好几个串口。比如说 STM32F103ZET6 有 5 个串口,我们可以查手册知道,串口 1

linux库引入之动态库静态库(生成和使用)

库:库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。就是将源代码转化为二进制格式的源代码,相当于进行了加密,别人可以使用库,但是看不到库中的内容。如何使用用户需要同时具有头文件和库。头文件(相当于说明书的作用,能够知道这个库能干嘛)制作出来的库(具体的实现,存放.c、.cpp)静态库:是在程序执行前(编译)就加入到目标程序中去了。优点:1、静态库被打包到应用程序中运行速度快2、发布程序

#linux
STM32 定时器中断

通用定时器工作过程:

vim模式下报错E37: No write since last change No write since last change for buffer “ “

报错如下图所示:网上的解决方法:文件为只读文件,无法修改。使用命令:w!强制存盘即可在vim模式下,键入以下命令::w!存盘后在使用vim命令检查是否保存,如未保存,编辑后重复以上操作。或者报出linux中vi保存文件时的“Can’t open file for writing”E212: Can’t open file for writingPress ENTER or type command

#vim#linux#windows
libcurl库的安装和使用

libcurl简介:libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。libcurl的官网 、库下载。这种库使用的时候就像使用wiringP

#http
线程条件控制实现线程的同步

与条件变量相关API        条件变量是线程另一可用的同步机制。条件变量给多个线程提供了一个会合的场所。条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定的条件发生。        条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量

WiFi避障小车

硬件清单:Wemos D1(支持AP模式也就是路由模式和STA模式也就是上网设备)、超声波模块、小车、L9110s步进电机控制器软件:eclipse、arduino IDEWiFi配置参考博文ESP8266WiFi库:从上图中可以看出ESP8266WiFi库主要包含Station、Soft AP、config、WiFiClient、WiFiServer、scan、hostname,本节主要介绍St

线程同步之互斥量加锁解锁 死锁

与互斥锁相关API      互斥量(mutex)从本质上来说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁后,任何其他试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变为可运行状态的线程可以对互斥

智能家居项目开发准备工作

智能家居功能细节拆分:控制端支持语音设备的输入(用到之前所学习的LD3320语音识别模块)或者是socket客户端(这个客户端可以是ftp项目的客户端也可以是Android的app),主控芯片是树莓派,既接收语音模块的控制指令还可以接收来自客户端网络TCP的指令,然后树莓派编写程序时,会编写两个线程(一个用于语音模块串口线程、一个用于客户端线程),然后树莓派会通过IO的高低电平来控制继电器进而控制

#语音识别#物联网#智能家居 +2
到底了