STM32LED灯闪烁、流水灯、驱动蜂鸣器(使用寄存器操作,对GPIO引脚进行初始化)

基于STM32F407ZE开发板LED灯闪烁(使用寄存器操作,对GPIO引脚进行初始化)使用官方函数对GPOI初始化的版本:https://blog.csdn.net/weixin_43793181/article/details/109008629#include <stm32f4xx.h>void delay_ms(int ms) //延时函数{ int i,j; for(i=0; i<ms; i++) for(j=0; j<10000;j++)
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

STM32通过按键控制LED灯示例

STM32F407ZE 通过按键控制LED灯示例,要求:①按键按下 D1亮 按键松开 D1灭②按键按下一次 D1亮 按键再按下一次 D1灭 ----(按键每按下一次D1实现翻转)需要注意的是按键需用到延时消抖,延时时长按实际进行修改,检测按键按下与松开应该使用标志位等区分,如果只是通过读取按键返回值判断,在while循环里可能会对同一个LED灯多次操作。#include <stm32f4xx.h>void delay_ms(int ms) //延时函数{
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

STM32驱动按键和LED灯实时显示二进制值

基于STM32F407ZE开发板的驱动按键和LED灯实时显示二进制值应用实例:要求:①按键S1按下变量+1②按键S2按下变量-1③按键S3按下变量清零④LED实时显示这个变量的二进制值(变量的范围:0~15)⑤工程管理(函数封装)文件结构:main.c部分:#include <stm32f4xx.h>#include "sys.h"#include "LED/led.h"#include "KEY/key.h"#include "delay/delay.h"int
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

STM32外部中断驱动按键,实现按键控制LED灯的开关

STM32F407ZE开发板外部中断驱动按键,实现按键控制LED灯的开关.main.c部分:#include <stm32f4xx.h> //该头文件作用和reg51.h是一样的#include "sys.h"#include "led.h"#include "key.h"#include "delay.h"int main(){ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 2分组 LED_In
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

STM32使用串口实现USART1发送字符串

STM32F407ZE 使用串口编程,实现函数能够通过USART1发送字符串,串口助手接收字符串运行结果:其中问题:①字符串换行问题: Linux : ‘\n’windows: ‘\r’ ‘\n’安卓: ‘\r’ ‘\n’因此在这个例子中,发送字符串时应在字符串后面加入\r\n,(“Hello world!\r\n”)②串口助手接收到的字符串缺少首字符问题:如下代码,加入第四行,意为发送字符前将标志位清空,因为一开始DataString就有一个’\0’,循环时就会跳过第一个
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

STM32串口USART1接收发送字符串

STM32F407ZE开发板实现使用串口USART1接收、发送字符串实例具体代码及解析如下:main.c部分#include <stm32f4xx.h> #include "led.h"#include "ustart.h"#include <string.h>int main(){ LED_Init(); USART1_Init(); USART_SendString(USART1, "Hello world!\r\n"); while(1) {
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

STM32重载printf()函数

printf()h函数重载后,还需要加入下图的修改项函数重载时,在自定义头文件中包含 stdio.h 文件,并加入以下重载函数int fputc(int ch, FILE *f) { /* 发送一个字节数据到串口 */ USART_SendData(USART1, (uint8_t) ch); //程序开始时,会发送一次数据,ch是系统分配的(可能是0),串口会显示大概两个空格的内容 /* 等待发送完毕 */ while (USART_GetFlagStatus(USART1, USART
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

ksdensity函数编译错误及解决办法

ksdensity函数编译错误及解决办法在matlab仿真中举一个例子:x=randn(30,1);[f,xi]=ksdensity(x);plot(x);编译成功图像:我一开始把该m文件命名为ksdensity.m导致函数一直运行不了,应该是与matlab内置的ksdensity函数冲突,导致编译出错,错误如下:后来把m文件名字改成其他的,就成功运行了!!!...
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

信噪比SNR与误码率、噪声概率密度以及中断概率及matlab代码

**信噪比SNR与误码率、噪声概率密度以及中断概率及matlab代码信噪比SNR的matlab仿真一、信噪比SNR**信噪比(SIGNAL NOISE RATIO,SNR or S/N),即放大器的输出信号的功率与同时输出的噪声功率的比值(有效信号的能量与噪音的能量之比),常常用dB表示。设备的信噪比越高表明它产生的杂音越少。假设瑞利衰落信道中的接收信号的形式为: y=hx+n;clear all;close all;%误码率曲线的绘制SNR=1:1:20;%信噪比变化范围snr=1
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

终端操作MySQL数据库

目录登录和退出MySQL服务器查询数据库服务器中所有的所有数据库创建数据库选中某一个数据库进行操作登录和退出MySQL服务器# 登录MySQL$ mysql -u root -p12345612# 退出MySQL数据库服务器exit;查询数据库服务器中所有的所有数据库mysql> show databases;# 结果+--------------------+| Database |+--------------------+| informatio
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

P3 如何创建数据库数据表

目录显示数据库中的所有表创建数据表查看数据表结构 显示数据库中的所有表mysql> show tables;未创建时显示为空:# Empty set (0.01 sec) 创建数据表mysql> create table pet( -> name VARCHAR(20), -> owner VARCHAR(20), -> species VARCHAR(20), -> sex CHAR(
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

P4 数据记录增删查改操作

查看数据表中的记录SELECT * from pet;如果为空:Empty set (0.03 sec)如何往数据表中添加数据记录写法一: INSERT INTO pet VALUES ('Bob','John','hamster','f','2000-01-01',NULL); # Query OK, 1 row affected (0.02 sec) 再次查询+------+-------+---------+------+------------+-------+| name
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

P5 MySQL数据类型和类型选择

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。目录数值类型日期和时间类型字符串类型 数值类型关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。金钱最好用int/bigint(整数,单位用分,拿出来进行*100换成元),千万不要直接用浮点,会有精度损失. 日期和时间类型  字符串类型 CHAR 和 VARCHAR
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

Python argparse模块下add_argument() 的使用方法

文章目录前言简单介绍argparseargparse使用基本步骤add_argument() 方法示例  前言在很多论文的源码中,会有以下这种代码:parser = argparse.ArgumentParser(description="Run NGCF.")parser.add_argument('--weights_path', nargs='?', default='',help='Store model path.')parser.add_argument('--data_pat
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

整数快速幂(原理+模板)

原理求xNx^NxN时,根据n的二进制位数,分为xn1+xn2+xn3+xn4……x^{n1}+x^{n2}+x^{n3}+x^{n4}……xn1+xn2+xn3+xn4……例如:在求x18x^{18}x18时,我们可以拆分成 x16x^{16}x16、x2x^2x2的乘积。我们观察18的二进制数(10010),发现二进制第 i 位上的值为 1 ,在乘积中就要有x2ix^{2^i}x2i 的一项。据此我们可以利用遍历二进制数的每一位快速求出 xNx^NxN。模板int qmi(int x, int
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

矩阵快速幂(附模板)

求解矩阵 A 的 N 次方,我们可以类比整数快速幂,写一个矩阵的结构体,用一个matmul函数来定义矩阵的乘法,具体实现过程与整数快速幂类似(整数快速幂)模板struct mat{ ll m[maxn][maxn];}unit;void init(){ for(int i=1;i<maxn;i++) unit.m[i][i]=1;}mat matmul(mat a,mat b)//ans=矩阵a*矩阵b{ mat ans; ll tmp
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

根据线性递推的DP公式如何写出变换矩阵

一组DP状态,其实等价于一个向量。而DP状态的转移方程,可以是对一个向量做变形的矩阵。那么本质上从1个向量到另一个状态的向量,是可以通过一个矩阵来做到。矩阵具有结合律,我们可以先对右半部分矩阵用快速幂得到一个终极的变形矩阵,再乘以向量,就可以把O(N)的计算 优化到 O (LOG (N))以大家最熟悉的斐波那契数列为例:递推公式为 dp[i]=dp[i−1]+dp[i−2]dp[i] = dp[i-1] + dp[i - 2]dp[i]=dp[i−1]+dp[i−2],那么每一个新的数的计算依赖于前2个
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

通过的镜像源安装python包

file - - settings - - project - - project interpreter - - 右侧+ - - manage repositories阿里源:http://mirrors.aliyun.com/pypi/simple/清华源:https://pypi.tuna.tsinghua.edu.cn/simple/豆瓣源:http://pypi.douban.com/simple/
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

Available Packages检索框里显示为nothing to show的解决办法

在PyCharm里安装新的包时, Available Packages检索框里显示为nothing to show,但此时却可以在命令行用pip安装包。解决办法为:点击在PyCharm里Project Interpreter中最右边Anaconda的小圆圈“use conda package manager ”即可。...
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0

Android studio 去除软件运行时顶部原有的蓝色/绿色框

首先app/res/values/sthles.xml中<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">改成这样,这样就没有标题栏了。
分类: 其他 发布时间: 10-18 16:09 阅读次数: 0