- 博客(24)
- 收藏
- 关注
原创 转载CVcv
转载https://blog.csdn.net/m0_46152793/article/details/117380196?spm=1001.2014.3001.5502https://yongqi.blog.csdn.net/article/details/119792527?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_r
2022-02-23 19:57:35 170
原创 stm32 驱动舵机demo
duoji.hvoid TIM4_PWM_Init(void);duoji.c#include "duoji.h"#include "stm32f10x.h"void TIM4_PWM_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //定义结构体变量名 TIM_OCInitTypeDef TIM_OCI
2021-01-15 23:28:58 422
原创 stm32--串口
1、USART 简介通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART(Universal Asynchronous Receiver and Transmitter),它是在 USART 基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 UA
2021-01-02 13:33:35 412
原创 stm32--SysTick—系统定时器
1、SysTick 简介、SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK 等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。因为 SysTick 是属于 CM3 内核的外设,所以所有基于 CM3 内核的单片机都具有这个系统定时器,使得软件在 CM3 单片机中可以很容易的移植。系统定时器一般用于操作
2021-01-02 12:51:01 272
原创 stm32--EXTI—外部中断/事件控制器
1、EXTI 简介EXTI(External interrupt/event controller)—外部中断/事件控制器,管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性EXTI 功能框图EXTI 可分为两大部分功能,一个是产生中断,另一个是产生事件,这两个功能从硬件上就有所不同。产生中断线路目的是把输入信号输入到 NVIC,进一
2021-01-01 23:14:14 1087
原创 STM32 中断应用(NVIC简介)
一、异常类型F103 在内核水平上搭载了一个异常响应系统, 支持为数众多的系统异常和外部中断。其中系统异常有 8 个(如果把 Reset 和 HardFault 也算上的话就是 10 个),外部中断有 60个。除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。有关具体的系统异常和外部中断可在标准库文件 stm32f10x.h 这个头文件查询到,在IRQn_Type 这个结构体里面包含了 F103 系列全部的异常声明。二、NVIC 寄存器简介表17-5NVIC 初始化结构体NVIC_
2021-01-01 22:56:29 1257
原创 stm32--RCC—使用 HSE/HSI 配置时钟
RCC :reset clock control 复位和时钟控制器。特别是要着重理解时钟树,理解了时钟树,STM32 的一切时钟的来龙去脉都会了如指掌。1、在STM32的启动文件中会调用调用固件库函数中的SystemInit(在文件system_stm32f10x.c)来初始化时钟,把时钟初始化为72Mhz,先来看下时钟树的整体图1. ①HSE 高速外部时钟信号HSE 是高速的外部时钟信号,可以由有源晶振或者无源晶振提供,频率从 4-16MHZ不等。HSE 最常使用的就是 8M 的无源晶振。当确定
2021-01-01 22:32:37 1087
原创 stm32--GPIO 输入—按键检测
一、编程要点使能 GPIO 端口时钟;初始化 GPIO 目标引脚为输入模式(浮空输入);编写简单测试程序,检测按键的状态,实现按键控制 LED 灯。代码分析1. 按键引脚宏定义1 // 引脚定义2 #define KEY1_GPIO_CLK RCC_APB2Periph_GPIOA3 #define KEY1_GPIO_PORT GPIOA4 #define KEY1_GPIO_PIN GPIO_Pin_05 6 #define KEY2_GPIO_CLK RCC_APB2Peri
2021-01-01 21:56:24 644
原创 stm32--GPIO 输出—使用固件库点亮 LED
一、编程要点使能 GPIO 端口时钟;初始化 GPIO 目标引脚为推挽输出模式;编写简单测试程序,控制 GPIO 引脚输出高、低电平。二、代码分析1. LED 灯引脚宏定义1 // R-红色2 #define LED1_GPIO_PORT GPIOB3 #define LED1_GPIO_CLK RCC_APB2Periph_GPIOB4 #define LED1_GPIO_PIN GPIO_Pin_55 // G-绿色6 #define LED2_GPIO_PORT GPIOB
2021-01-01 21:46:57 783 1
原创 stm32 GPIO的输入输出模式
一、上拉:把一个不确定的信号通过电阻连接到高电平,是电信号转换为高电平下拉:把一个不确定的信号通过电阻连接到低电平,是电信号转换为低电平STM 32 GPIO 的控制(8种):1、模拟输入2、浮空输入3、上拉输入4、下拉输入TTL施密特触发器:把多少V的电压转换为单片机认识的 0 1 数字信号。1、开漏输出2、推挽输出3、复用开漏输出4、复用推挽输出...
2020-10-06 09:32:52 424
原创 树莓派-自己实现wiringPi-对gpio4的驱动编写
1. 对pin4引脚的定义为输出端口2. 设置接收到不同的指令pin4为高电平还是低电平3. 将物理地址映射成虚拟地址4.卸载 io 口虚拟地址的映射驱动代码#include <linux/kernel.h>#include <linux/device.h>#include <linux/uaccess.h>static struct class *pin4_class; // 创建一个类static struct device *pin4
2020-07-13 21:59:43 635 1
原创 微机总线地址 物理地址 虚拟地址的介绍
微机总线地址 物理地址 虚拟地址的介绍1. 总线地址Unix 设计与实现内核设计原理地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 (一部份),是由CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。简单来说 就是cpu能访问内存的范围。现象 : 装了32的win7系统,明明内存条8g,可是系统只是别3.8g ,装了64位才能识别8g。2的32次方能访问 最大4294967296 bitbit 429496729
2020-07-13 08:54:52 377
原创 树莓派-Linux-内核驱动编译
写好驱动代码pin4module.c#include <linux/module.h>#include <linux/fs.h>#include <linux/init.h>#include <asm/io.h>#include <linux/types.h>#include <linux/kernel.h>#include <linux/device.h>#include <linux/uacces
2020-07-11 01:36:39 479
原创 Linux 线程
1.进程与线程<<进程——资源分配的最小单位,线程——程序执行的最小单位>>一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序**健壮,**但在进程切换时,耗费资源较大,效
2020-07-07 20:17:00 211
原创 Linux ipc
1.无名管道不是文件类型,只存在于内存当中。半双工,有固定的的 读 写 端。只能用于亲缘关系的通讯。fd[0]只管读 fd[1]只管写是一种特殊的文件,对它也可以使用 read,write 函数。管道是放在内核当中的pipe#include <stdio.h>#include <unistd.h>#include <string.h>int main(){ int fd[2]; char buf[128] = {0}; int pi
2020-07-06 23:26:15 331
原创 Linux文件编程
1. 文件的打开及创建文件的写入操作文件读取操作文件的光标移动#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>int main(){ int fd;
2020-07-06 19:54:33 188
原创 树莓派高阶开发笔记
2. 树莓派等芯片带操作系统的启动过程C51,STM32(裸机)》》》》》》C直接操控底层寄存器实现相关业务。 业务流程型的裸机代码遥控灯: while(1)垃圾桶:WemosD1 LOOP恩智浦智能车: stm32X86,Intel windows启动过程: 电源 -》 BIOS -》windows内核-》C,D盘-》 程序启动(QQ)嵌入式产品: 树莓派,mini2440, mini6410,nanopi,海思,RK(瑞芯微)------人脸识别打卡器,智能家居主控。。。启动过程
2020-07-06 00:32:52 498
原创 树莓派交叉编译笔记
1. 交叉编译是什么,为什么要交叉编译====================================================什么是交叉编译?是在一个平台上生成另一个平台上的可执行代码。我们在windows上面编写C51代码,并编译成可执行代码,如xx.hex,是在c51上面运行,不是在windows上面运行我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如a.out,是在树莓派上面运行,不是在ubuntu linux上面运行编译:是在一个平台上生成在该平台上
2020-07-05 23:57:20 711
原创 ftp服务器
一 FTP服务器服务器代码#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <stdlib.h>#include <arpa/inet.h>#include <netinet/in.h>#include <string.h>#include "config.h"#
2020-06-20 11:32:30 338
原创 Linux socket编程
1.TCP/UDP对比TCP面向连接(如打电话要先拨号建立连接) ;UDP是无连接的,即发送数据之前不需要建立连接TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP 是面向报文的UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)每一条TCP连接只能是点到点的;UDP支持一 对一,一对多,多
2020-06-20 11:23:48 414
原创 Linux库概念及相关编程(面试重点)
1.分文件编程好处a.功能责任划分b.方便调试c.主程序简洁2.库的概念a.a) 静态库静态函数库,是在程序执行前(编译)就加入到目标程序中去了优点: 运行快发布程序无需提供静态库,因为已经在app中,移植方便缺点:大b.动态库动态函数库,是在程序执行时动态(临时)由目标程序去调用缺点: 运行慢优点: 小3.库的制作静态库的制作:格式xxxx.aa. gcc calcufuncs.c -c 生成xxx.o文件b. ar rcs libcalcufunc.a ca
2020-06-15 14:07:39 253
原创 树莓派开发文档笔记—基础配置
1.树莓派的刷机2.树莓派的登录HDMI视频线 连接到显示器串口默认情况,树莓派的串口和蓝牙连接。想办法断开蓝牙连接,把串口用来数据通信https://blog.csdn.net/syjsxxjy/article/details/80774262 这里是引用a. 观看树莓派的启动过程,字符b. 串口登录树莓派2.1默认账号 : pi默认密码 : raspberry2.2 通过网络登录树莓派2.2.1 让树莓派入网修改sudo nano /etc/wpa_sup
2020-06-15 13:54:53 294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人