自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郁金香

IT帝国

  • 博客(26)
  • 资源 (14)
  • 收藏
  • 关注

原创 FAL:Flash 抽象层的使用

FAL (Flash Abstraction Layer) Flash 抽象层,是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API

2022-07-04 18:24:20 901 1

原创 RTThread 操作系统中,编译出的程序为什么能打印出当前时间?

## 1. 做实验引发的思考在之前学习RT-Thread操作系统时,我发现一个比较有趣的现象:串口打印的日志中竟然包含着当前时间!并且,我每天做实验时,这个日期都会变化,还能保持和当前时间一致!我的好奇心被引发了,系统会不会偷偷配置了RTC,不然它怎么知道现在几点了?怀揣着问题,我决定要去探索一下2. 系统打印出的当前时间这是RT-Thread刚上电时控制台默认打印的内容,可以看到日期在今天:3. 揭晓谜底其实,这些系统之所以准确的打印出当前时间,和板子硬件没有任何关系,更不会使用的RTC

2022-04-23 18:14:02 1564

原创 UbuntuServer搭建MQTT服务器

一、MQTT协议简介MQTT 是一个基于发布/订阅模式的消息传输协议。它具有轻量级、开放、简单,易于实现,通信带宽要求低等特点。这些特点使得它对机器与机器的通信(M2M)以及物联网应用(IoT)来说是很好的选择。它还被应用到手机APP和Web应用中。MQTT于1999年由Andy Stanford-Clark(IBM)和Arlen Nipper(Arcom,现为Cirrus Link)发明,最初的应用是为了以最小的电池损耗和最小网络带宽将石油管道数据通过卫星进行传输。在MQTT最初版本发布3年后,O

2022-04-20 19:08:46 4816 1

原创 clion openocd (jlink / stlink)踩坑笔记

配置完clion后,编译,下载都没问题,但是调试不行,报错如下:[https://github.com/sysprogs/openocd]Licensed under GNU GPL v2libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3For bug reports, readhttp://openocd.org/doc/doxygen/bugs.htmlUnexpected command line argument: Files\JetBr

2022-03-16 18:13:57 2627 1

原创 07 Dart中的函数 函数的定义 可选参数 默认参数 命名参数 箭头函数 匿名函数 闭包等 - 上

01 方法的定义 变量 方法的作用域内置方法/函数: print();自定义方法: 自定义方法的基本格式: 返回类型 方法名称(参数1,参数2,...){ 方法体 return 返回值; }void printInfo() { print('我是一个自定义方法');}int getNum() { var myNum = 123; return myNum;}String printUserIn.

2021-09-24 15:10:12 130

原创 06 Dart 集合类型List Set Map详解 以及循环语句 forEach map where any every

List里面常用的属性和方法:常用属性:length 长度 reversed 对列表倒序排序 isEmpty 是否为空 isNotEmpty 是否不为空 常用方法: add 增加 addAll 拼接数组 indexOf 查找传入具体值 (查找数据查找不到返回-1查找到返回索引值) ...

2021-09-24 14:16:15 364

原创 05 Dart 循环语句 for while do...while break continue 多维列表循环

for基本语法:for(inti=1;i<=100;i++){print(i);}第一步,声明变量inti=1;第二步,判断 i<=100第三步,print(i);第四步,i++第五步,从第二步再来,直到判断为false例程:void main() { // for (int i = 1; i <= 10; i++) { // print(i...

2021-09-23 18:29:59 176

原创 04 Dart运算符 条件表达式 Dart类型转换

Dart运算符: 算术运算符: + :加- :减* :乘/ :除~/ :取整% :取余 例程:void main() { int a = 13; int b = 5; print(a + b); //加 print(a - b); //减 print(a * b); //乘 print(a / b); //除 print(a % b); //其余 print(a ~/ b); //取整 var c = a * b; print('--

2021-09-23 12:11:34 405

原创 03 Dart的数据类型详解 int double String bool List Maps

Dart中支持以下数据类型:常用数据类型:Numbers(数值):int doubleStrings(字符串)StringBooleans(布尔)boolList(数组):在Dart中,数组是列表对象,所以大多数人只是称它们为列表Maps(字典):通常来说,Map是一个键值对相关的对象。键和值可以是任何类型的对象。每个键只出现一次,而一个值则可以出现多次项目中用不到的数据类型(用不到):RunesRune是UTF-32编码的字符...

2021-09-23 11:09:31 249

原创 02 Dart 入口方法介绍 Dart打印 Dart注释 Dart变量 常量申明 变量命名规则

Dart变量:dart是一个强大的脚本类语言,可以不预先定义变量类型,自动会类型推倒dart中定义变量可以通过var关键字可以通过类型来申明变量如:varstr='thisisvar';Stringstr='thisisvar';intstr=123;注意:var后就不要写类型,写了类型不要var两者都写varaint=5;报错Dart常量:final和const修饰符...

2021-09-23 09:55:51 124

原创 01 Dart介绍 Win Mac上面分别搭建Dart环境 开发工具配置 以及运行Dart

Dart介绍:Dart是由谷歌开发的计算机编程语言,它可以被用于web、服务器、移动应用和物联网等领域的开发。Dart诞生于2011年,号称要取代JavaScript。但是过去的几年中一直不温不火。直到Flutter的出现现在被人们重新重视。要学Flutter的话我们必须首先得会Dart。官网:https://dart.dev/Dart环境搭建:要在我们本地开发Dart程序的话首先需要安装DartSdk官方文档:https://da...

2021-09-23 09:44:03 4648

原创 004、STM32CubeMX系列教程 LL库-PWM(控制蜂鸣器)

https://gitee.com/xushicheng1202/stm32-cube-mx_LL.git这一章我们在前一章GPIO的工程修改。复制GPIO的工程,修改文件夹名。1、使用STM32CubeMX配置定时器TIM1。2、配置时钟3、设置路径、工程名称等4、更改为LL库5、代码测试5.1、main.c文件main函数中,有MX_TIM2_Init();的初始化函数,可以查看其初始化源码(保持stm32cubemx生成的不变,无需更改)...

2021-09-10 11:22:48 1264

原创 005、STM32CubeMX系列教程 LL库-串行通信(不定长度,非DMA)

https://gitee.com/xushicheng1202/stm32-cube-mx_LL.git这一章我们在前一章GPIO的工程修改。复制GPIO的工程,修改文件夹名。1、USART & NVIC 配置,没有配置 USART3,引脚会显示黄色警告2、点击USART3,设置模式为Asynchronous,无硬件流控制,参数为:115200,8 Bits,None,1;(配置完 USART3 后,相关引脚会显示绿色,提示引脚配置正常)3、点击NVIC,使能USA...

2021-09-08 17:43:19 1242

原创 003、STM32CubeMX系列教程 LL库-基本定时器

https://gitee.com/xushicheng1202/stm32-cube-mx_LL.git这一章我们在前一章GPIO的工程修改。复制GPIO的工程,修改文件夹名。1、TIM2 & NVIC 配置点击TIM2,选择Internal Clock使能 TIM2 时钟,配置所需的分频系数、计数器重装载值及相应参数。定时器中断时间计算:????2、点击NVIC,使能TIM2 global interrupt中断,优先级设置为 3、0。...

2021-09-07 10:10:07 1596

原创 002、STM32CubeMX系列教程 LL库-外部中断(EXIT)

这一章我们在前一章GPIO的工程修改。复制GPIO的工程,修改文件夹名。1、配置GPIO为EXIT2、设置中断参数3、配置中断优先级这里就选用系统默认的优先级了,不做修改。4、编写代码:main.c(因为只对中断进行响应和操作,在这里对main函数中的while(1)中是不需要编写代码的。)5、编写代码:stm32f4xx_it.cvoid EXTI15_10_IRQHandler(void){ /* USER CODE BEGI...

2021-09-06 18:06:19 1067

原创 001、STM32CubeMX系列教程: LL库-GPIO

1、SYS选择debug模式2、RCC选择晶振模式:内部晶振、外部晶振3、设置GPIO属性4、配置Clock时钟5、设置项目名称、位置和IDE6、Advance Setting,选择LL库7、生成外设初始化(.c或.h)并生成代码8、生成工程后在main函数while(1)下添加如下代码即可实现简单的IO反转(注意:一定要在BEGIN和END之间写代码,否则重新生成工程代码会覆盖!!!) /* 你应该把你的代码写在在BEGIN与...

2021-09-06 16:10:39 1636

原创 tf.pad()函数

tf.pad():填充函数def pad_v2(tensor, paddings, mode="CONSTANT", constant_values=0, name=None):tensor:是要填充的张量 padings:代表每一维填充多少行/列,它的维度一定要和tensor的维度是一样的,这里的维度不是传统上数学维度,如[[2,3,4],[4,5,6]]是一个3乘4的矩阵,但它依然是二维的,所以pad只能是[[1,2],[1,2]]这种。 mode:可以取三个值,分别是"CONSTANT

2021-08-04 20:29:05 201

原创 tf.transpose()函数

tf.transpose():用于转置的操作def transpose_v2(a, perm=None, conjugate=False, name="transpose"):perm :控制转置的操作,以perm = [0,1,2] 3个维度的数组为例, 0–代表的是最外层的一维, 1–代表外向内数第二维, 2–代表最内层的一维,这种perm是默认的值.如果换成[1,0,2],就是把最外层的两维进行转置,比如原来是2乘3乘4,经过[1,0,2]的转置维度将会变成3乘2乘4示例:.

2021-08-04 13:38:37 863

原创 tf.gather()函数

tf.gather():用于。。。def gather_v2(params, indices, validate_indices=None, axis=None, batch_dims=0, name=None):params :该Tensor从中收集值。必须至少是等级 axis+1indices :索引Tensor,必须为以下类型之一:int.

2021-08-04 10:43:33 650

原创 tf.random.shuffle()函数

tf.random.shuffle():用于...def random_shuffle(value, seed=None, name=None):value: 。。 seed: 一个 Python 整数.用于为分布创建一个随机种子 name: 操作的名称(可选)示例:print("tf.random.shuffle(tf.range(10)):", tf.random.shuffle(tf.range(10)))输出:tf.random.shuffle(...

2021-08-04 10:25:48 1637

原创 tf.random_uniform()函数

tf.random_uniform():用于从均匀分布中输出随机值。def random_uniform(shape, minval=0, maxval=None, dtype=dtypes.float32, seed=None, name=None):shape: 张量形状 minval: 随机值范围下限

2021-08-04 10:13:52 5802

原创 tf.random_normal()函数

tf.random_normal():用于从“服从指定正态分布的序列”中随机取出指定个数的值。tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) shape: 输出张量的形状,必选 mean: 正态分布的均值,默认为0 stddev: 正态分布的标准差,默认为1.0 dtype: 输出的类型,默认为tf.float32...

2021-08-04 10:00:26 503

原创 Win10下安装并使用tensorflow-gpu全过程

cpu训练的时间实在是太长,所以想用gpu训练一下,经过了一天的折腾终于可以用gpu进行训练了,嘿嘿~~~ 首先先看一下自己电脑的显卡信息,是否存在独显: 然后进入NVIDIA控制面板->系统信息->组件 查看可以使用的cuda版本 进入官网:https://developer.nvidia.com/cuda-toolkit-archive 找到并下载和显卡信息相匹配的cuda 下载完成后按照默认的执行下去(当然也可以修改安装的路径)...

2021-07-30 14:10:04 564 1

原创 Ubuntu20.04 更换国内源

ubuntu 更换国内源安装好ubuntu系统后,默认的软件更新源是国外的,在国内使用速度很慢,用"apt install xxx"安装软件时可能出现"网络不可达"、"你的网络需要认证吗"、"无法定位软件包"等错误,所以我们需要更换成国内的源,这样才能正常安装和更新软件。1.备份原始源文件source.list桌面打开终端,执行命令:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2.查看对应Linux版本的软件源镜.

2021-01-21 17:55:01 6458 1

原创 stm32 将PB3,PB4设置为普通IO模式

最近在做项目,涉及到将PA3、PA4引脚作为普通IO模式,控制LED灯亮灭,发现这两个IO口不受控制,一直处于高电平状态。查阅stm32的引脚说明发现,PB3和PB4在系统复位时候,分别默认为SYS_JIDO和SYS_HJTRST,所以需要自行禁止其功能,才能将PB3和PB4作为普通IO引脚使用。下面是解决方法:在初始化引脚的时候,增加下列两行代码://打开GPIO口时钟,先打开复用才能修改是否停用复用功能RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB

2020-06-24 10:36:20 7750 5

原创 PyCharm解除远程仓库并连接新仓库上传

1、解除远程仓库在文件的目录右键 git bash here 先初始化输入 git init 然后输入 find . -name “.git” | xargs rm -Rf 2、连接新仓库上传

2020-06-12 17:51:27 646

STM32的开源Bootloader框架 APP 程序制作

STM32的开源Bootloader框架 APP 程序制作 文档对应的源码程序 https://blog.csdn.net/weixin_39946218/article/details/124514645

2022-04-30

STM32的开源Bootloader框架 RT-FOTA 移植

STM32的开源Bootloader框架 RT-FOTA 移植 文档对应的源码程序 https://blog.csdn.net/weixin_39946218/article/details/124491960

2022-04-30

交易数据异常检测--creditcard.zip

交易数据异常检测--creditcard.zip

2020-03-10

Keil 软件的配色

日常单片机编程使用的是keil(编译32的时候,也叫MDK,外表无差别),然后,为了护眼(zhaung B),就会去设置颜色啦.......

2019-02-26

STM32F103战舰板+FreeRTOS例程

基于STM32F103RBT6的FreeRTOS的移植与实现。工程为MDK Keil V5的,功能为建立2个小任务,实现LED按不同的时间闪烁,运行正常。可以作为移植后的模板程序使用。

2018-12-12

STM32CubeMX4.27.0

STM32CubeMX是基于eclipse 的一个插件,用来对STM32产品的配置及初始化代码的生成

2018-11-09

STM32F030C8T6_RTC唤醒待机模式

STM32的3种低功耗模式: 1、睡眠模式:内核停止,外设如NVIC,系统时钟Systick仍运行。 2、停止模式:所有时钟都已停止;1.8V内核电源工作;PLL,HIS和HSERC振荡器功能禁止;寄存器和SRAM内容保留。 3、待机模式:1.8V内核电源关闭;只有备份寄存器和待机电路维持供电;寄存器和SRAM内容全部丢失;实现最低功耗。

2018-11-09

Multisim14仿真教程

Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。 工程师们可以使用Multisim交互式地搭建电路原理图,并对电路进行仿真。Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。

2018-11-09

Keil-v5_芯片包(F0.F1)

keil-5 的安装包突然变那么小是因为裁掉了很多老版的设备,如一些 Cortex-M 系列的和 ARM7、9系列的。

2018-10-26

SVN-安装及汉化包

Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

2018-10-26

xpath-helper 插件及使用方法

XPath Helper可以支持在网页点击元素生成xpath,整个抓取使用了xpath、正则表达式、消息中间件、多线程调度框架的chrome插件。

2018-10-24

雄迈摄像头模组50HV10PT-WP

雄迈摄像头模组,50HV10PT-WP,资料整合硬件开发实例。

2018-08-20

PCB布线规则有哪些

在PCB设计中,布线是完成产品设计的重要步骤,可以说前面的准备工作都是为它而做的, 在整个PCB中,以布线的设计过程限定最高,技巧最细、工作量最大。PCB布线有单面布线、 双面布线及多层布线。布线的方式也有两种:自动布线及交互式布线,在自动布线之前, 可以用交互式预先对要求比较严格的线进行布线,输入端与输出端的边线应避免相邻平行, 以免产生反射干扰。必要时应加地线隔离,两相邻层的布线要互相垂直,平行容易产生寄生耦合。   自动布线的布通率,依赖于良好的布局,布线规则可以预先设定, 包括走线的弯曲次数、导通孔的数目、步进的数目等。一般先进行探索式布经线,快速地把短线连通, 然后进行迷宫式布线,先把要布的连线进行全局的布线路径优化,它可以根据需要断开已布的线。 并试着重新再布线,以改进总体效果。

2018-08-20

PCB Logo Creator

打开Altidum Designer,点击菜单栏第一项DXP,再单击最后一项Run Script(运行脚本)PCB Logo Creator

2018-08-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除