- 博客(40)
- 资源 (4)
- 收藏
- 关注
原创 STM32之九:ADC模数转换器
本文主要介绍了逐次逼近型ADC工作原理、STM32的ADC输入通道、规则组注入组、数据对齐等知识,最后展示了使用STM32库函数驱动adc的代码。
2024-07-20 16:16:50
1072
原创 STM32之八:IIC通信协议
IIC协议是一个半双工、同步、一主多从、多主多从的串行通用数据总线。该通信模式需要2根线:SCL、SDA,即时钟线和数据线。
2024-07-15 20:56:56
1234
原创 STM32之七:SPI通信
SPI(Serial Peripheral Interface)通信是一个全双工、同步,可以一主多从的一种串行通信协议,该通信模式需要4根线,分别是MISO\MOSI\CLK\CS,广泛用于微控制器与各种外围设备(如传感器、存储器、显示器等)之间的数据交换。
2024-07-14 18:04:17
1187
原创 STM32编写代码之嵌入式常用位操作
现在再看程序1的第三行,a = b & (0x80 >> i));不难理解这句代码的意思是b依次和 (0x80 >> i)) 进行&的位操作,如果b的第 i 位为1,则&出的结果第i位保持1;可以看到,对于一个字节来说,0x80 >> i [ i 取值0-7] 即为依次将该字节的第7位、第6位、第5位、第4位、……表示 c = (c|=(0x80 >> i)),| 操作特性是有1即1,全0才0。但是一般在使用的过程中通常会在前面加一个if语句,即如果接收到1,才会执行该操作,目的是将相应位 置1。
2024-07-14 17:56:08
312
原创 STM32之六:SysTick系统滴答定时器
SysTick——系统定时器,是属于CM3内核的一个外设,内嵌在NVIC中。SysTick是一个24位的向下递减的计数器,从重装载寄存器的值递减到0,之后自动从RELOAD寄存器中重装载定时器初值。只要不使能systick定时器,它就永不停息的一直循环计数,在睡眠模式下也能使用。systick系统滴答定时器在没有操作系统时,用于延时;在有操作系统时候(RTOS、UCOS2)通常为操作系统提供精准的定时中断(1ms~50ms)。
2024-07-13 15:32:33
1048
原创 STM32之四:TIM定时器(1-基本定时器)
而在图152中,ARPE=1,在计数器还未达到0x36时,将ARR的修改为0x36,但是在计数器=0x36时却为产生更新,在计数器达到上次ARR的值0xF5产生更新事件之后,ARR的值(影子寄存器)才更新为0x36。“如果APB1预分频系数=1,则频率不变,否则频率*2”,我们知道,由于APB1最大频率为36MHz,SYSCLK时钟为72MHz,所以,APB1预分频器的系数=2,因此此处频率*2,即,至TIMxCLK的时钟为72MHz。即关闭影子寄存器,预装载寄存器的内容直接传送到影子寄存器。
2024-06-30 16:41:56
1193
原创 STM32之三:中断&&外部中断
中断是计算机的一种机制,描述了这样一种场景:CPU暂停当前正在处理的程序,转而去处理紧急的事情,这种场景就叫中断。中断其实很好理解,因为这样的场景经常发生在我们日常生活中。比如小李正在写作业,但是电话铃声响了,他转而去接电话,接完电话回来后继续写作业。在这个情境中,小李就完成了一次中断,下图根据现实生活的中断场景形象的表示了CPU中断过程,便于理解。图1 中断概念。
2024-06-26 13:21:12
1182
原创 STM32学习之一:什么是STM32
stm32 是ST公司基于ARM Cortex-M内核开发的32位微控制器,它是一个微控制器产品系列的总称。观看stm32的技术参考手册可以发现,stm32有很多子系列:stm32小容量产品,stm32中容量产品、stm32大容量产品和STM32互联型产品;按照功能上划分,又可分为STM32F101xxx,STM32F102xxx,STM32F103xxx系列。
2024-06-23 15:15:00
1320
原创 STM32之二:时钟树
AHB输出到APB1总线和APB2总线,其中APB1总线最大时钟频率为36MHz,为低速时钟,片上挂载低速外设,例如看门狗定时器,USART2\3\4\5,SPI2\3等。但是时钟源的时钟频率最高也就16MHz,达不到STM32系统时钟72MHz的要求,因此需要倍频器将外部时钟频率进行倍频,在输入给系统时钟。预分频器,可通过配置分频系数,调整输出时钟的频率。PLL锁相环是一种控制系统,之所以叫PLL时钟,是因为,PLL通过调整输入信号(HSE、HSI)的频率和相位,以满足系统对不同频率的要求。
2024-06-22 16:17:46
1232
1
原创 linux 下安装chrome 和 go
GOPATH 是存放 Go 项目的目录;GOROOT 是 Go 的安装包所在目录。1.1 首先下载google-chrome.deb安装包。将文件解压到 /usr/local 目录下。1.3 解决Chrome无法启动问题。1.2 安装所要安装的软件。之后 安装 gdebi包。
2023-08-31 17:24:13
1476
原创 当pycharm训练完毕之后未释放cuda
hyh@hyh:~$ whereis fuserfuser: /bin/fuser /usr/share/man/man1/fuser.1.gzhyh@hyh:~$ /bin/fuser -k /dev/nvidia*/dev/nvidia0: 1889m 2092m 2423m 2464m 5584m 5677m 11028m/dev/nvidiactl: 1889m 2092m 2423m 2464m 5584 5677 11028m/dev/.
2021-11-16 18:58:23
1028
原创 ubuntu16.04 卸载安装cudn cudnn pytorch
一、base环境下安装cudn和cudnn1.卸载旧cuda9.0(不需要则跳过)sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl卸载之后,会发现/usr/local/cuda-9.0目录下仍然有文件存在,仍然删除即可sudo rm -rf /usr/local/cuda-9.02.安装新cuda10.1找自己对应版本下载 https://developer.nvidia.com/cuda-toolkit-archive2
2021-06-30 15:13:37
841
原创 python中别名、深拷贝、浅拷贝区别
目录1.别名2.浅拷贝3.深拷贝以列表为例首先明白:1.列表实例存储对象序列2.列表是一个参考结构,它在技术上存储其元素的引用序列。1.别名现在有一个列表warmtones,里面存放颜色值。2.浅拷贝执行命令:palette = warmtones这句话为warmtones这个列表创建了一个别名palette。并没有创建新的列表。这叫做别名。3.深拷贝执行命令:palette = list(warmtones)这句话,
2021-05-09 22:11:55
201
原创 BGD SGD MBGD
截取了https://www.bilibili.com/video/BV19K4y177qZ?from=search&seid=3161602982813317145视频中的内容,如有侵犯,联系删除。
2021-04-26 15:33:27
124
原创 conda 命令
#记录一次conda命令//查看版本(base) C:\Users\miao>conda --versionconda 4.6.11#查看当前已安装的环境(base) C:\Users\miao>conda info -eWARNING: The conda.compat module is deprecated and will be removed in a future release.# conda environments:#base .
2021-04-26 11:26:31
312
原创 ESP8266--smartconfig使用实例
1. ESP-Touch的APP在乐鑫官网有下载 ,此处附上链接https://www.espressif.com/en/support/download/apps可参考ESP-TOUCH用户指南来了解Smartconfig的详细介绍 https://www.espressif.com/zh-hans/support/documents/technical-documents2.//串口端输入的AT指令AT+CWMODE=1AT+RSTAT+CWSTARTSMAR...
2021-04-23 12:55:51
1733
原创 初识Mat类
1.Mat类简介Mat是Matrix的缩写,代表矩阵或者数组的意思,该类的声明在头文件opencv2/core.hpp中。构造Mat对象需要四个基本要素:行数(高),列数(宽)、通道数及数据类型。其构造函数如下://方法一Mat(int rows,int cols,int type)//方法二Mat(Size(int cols,int rows),int type)rows代表行数,cols代表列数,type代表类型,包括通道数和数据类型,可设置值为、、、、、。其中8U、8S、16S、
2021-01-09 20:16:03
802
原创 STM32之零:Keil5安装到ST-LINK下载程序
目录1.下载stm32所需的软件2.安装Keil53.添加器件库安装包4.破解keil5安装ST-LINK驱动6.MDK下载设置7. ST-LINK下载设置1.下载stm32所需的软件keil5(mdk527)keil5破解软件(keygen.exe)st-link驱动(st-link_v2_usbdriver_for Windows 7, V...
2020-12-27 17:03:34
7223
1
原创 esp8266 连接原子云
之前用stm32驱动过esp8266,最近又接触8266的时候,发现原子哥更新了8266的固件库,可以连接原子云,最最重要的是,还是免费的,用起来。目录1.工具(串口工具,固件更新工具,原子云固件)2.烧写原子云固件2.1 硬件信息2.2 烧写固件时接线2.3 烧录过程3.原子云注册4.连接原子云5.出现dns fail!1.工具(串口工具,固件更新工具,原子云固件)链接:https://pan.baidu.com/s/1dhbE7jNIl_rjYqTh6yL2.
2020-12-26 14:08:12
4013
15
原创 win7+vs2015+pcl1.8.0
1.PCL下载方式一:百度网盘下载 里面有PCL-1.8.0-AllInOne-msvc2015-win64pcl-1.8.0-pdb-msvc2015-win64PCL-1.8.0-AllInOne-msvc2015-win32pcl-1.8.0-pdb-msvc2015-win32 属性表 具体下载什么要看自己的VS系统,因为我的VS是2015版本的,就只下载了2015版本的。链接:https://pan.baidu.com/s/1Rnt6OgicjNLFGDqZBFFBAw...
2020-12-05 12:09:30
415
原创 用免疫算法解决TSP问题
目录1.思路解读2.代码解读3.PPT和代码文件1.思路解读2.代码解读//immune-TSP.py# -*- coding: utf-8 -*-"""Created on Sun Feb 2 16:30:16 2020@author: cgz"""import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-se...
2020-09-30 20:32:09
1752
1
原创 STM32 printf 和 scanf 函数重定向
1. 方法一/// 重定向c库函数printf到USART1int fputc(int ch, FILE *f){ /* 发送一个字节数据到USART1 */ USART_SendData(USART1, (uint8_t) ch); /* 等待发送完毕 */ while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) =...
2020-02-13 20:22:31
3871
3
原创 CentOS的网络配置
首先切换到/etc/sysconfig/network-scripts 目录中,修改网卡配置文件(ifcfg-ens33)配置参数设备类型:TYPE=Ethernet地址分配模式:BOOTPROTO=static(静态IP)网卡名称:NAME=ens33是否启动:ONBOOT=yesIP地址:IPADDR=192.168.43.205子网掩码:NETMASK=255....
2020-02-13 19:58:01
122
原创 STM32 驱动 ESP8266 WIFI 模块
拿到一个野火的esp8266模块,驱一下试试。1. 模块引脚esp8266模块引脚图在我们使用中只使用1、2、4、6、7、8引脚即可。3、4引脚是刷新固件库时候使用。从引脚图中可以看到ESP8266主要使用USART来通信。模块默认波特率为9600.2. 测试模块是否正常接线如下:测试模块引脚连线 WF-ESP8266模块 串口 VCC 3V3 GN...
2020-02-13 19:30:16
14602
9
原创 STM32 LED 初始化程序
把stm32 初始化led灯的程序记录一下,回头可以直接使用,不用每次都找了//led.c#include "led.h"void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; /* 使能GPIOA时钟 */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);...
2020-02-13 18:17:41
3993
1
原创 hex码转为数码管显示
将串口接收到的hex码转化为数码管输出//共阴极uint8_t table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//接收到的数据存到res里面//u8 resif((res>='0')&&(res<='...
2020-01-31 15:01:12
594
原创 16位数字拆分
1.hex码只能发送8位情况下//发送端发送时拆分u16 send_data;u8 send_buf[2];send_buf[0] = send_data/256;send_buf[1] = send_buf%256;//接收端接收时合并u16 recv_data;u8 recv_buf[2];recv_data = recv_buf[0] * 256 + recv_...
2020-01-31 14:44:18
1655
原创 UML知识点总结(一)
目录第一部分:概述第二部分:UML和RUP1概念:2 UML(统一建模语言)3 RUP(理性统一过程)迭代 增量4 UML之关系5 UML建模元素 - 结构型元素6 UML建模元素 - 行为型模型7 交互和交互图(顺序图,协作图(通信图))第一部分:概述1,系统(系统):系统是一组互相依赖和互相交互的一组组件组成的整体,一个系统可以用静态的结构和动...
2018-12-26 20:35:38
3607
原创 ubuntu安装bochs&nasm并运行img文件
一:安装nasm1、首先下载nasm的压缩包http://www.nasm.us/pub/nasm/releasebuilds 找到2.14rc16 (版本号,可以选择其他的版本),之后进入找到nasm-2.14rc16.tar.gz 这个压缩包(一般在linux上面使用这个压缩形式),下载下来2、解压:tar zxvf nasm-2.14rc16.tar.gz3、之后进入到解压的...
2018-12-16 22:02:00
2105
1
原创 linux0.11怎么实现的系统调用
此篇文章主要为了解决哈工大操作系统实验3——系统调用,从一点都不了解一步步深入探究,最终完成实验的整个过程。所以篇幅较长,可耐心看,会有收获。linux0.11怎么实现的系统调用Linux0.11中,include/unistd.h 中定义了72个系统调用号(太多此处不贴出)以及几个宏函数(如下):#define _syscall0(type,name) \type name(vo...
2018-12-05 21:57:15
966
原创 ubuntu上编译HIT-linux0.11
一直在实验楼上做的哈工大Linux0.11的实验,但是最近觉得在上面不能保存实验环境。而且有时候一下子卡了,所有的功劳就白费了。所以想在自己电脑上弄一个实验环境,方便自己做记录,也能有更多“自主权”了。 由于那个实验的源码里面东西不错,有bochs,也不用自己配了,况且也用习惯了。因此就下载下来压缩包:hit-oslab-linux-20110823.tar.gz...
2018-12-05 19:24:31
1006
1
esp32工具链以及工具链下载地址
2021-06-20
STM32F030_TM1650.rar
2020-01-10
tm1650中文资料-数据手册-参数.pdf
2020-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人