- 博客(26)
- 资源 (14)
- 收藏
- 关注
原创 FAL:Flash 抽象层的使用
FAL (Flash Abstraction Layer) Flash 抽象层,是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API
2022-07-04 18:24:20
1188
原创 RTThread 操作系统中,编译出的程序为什么能打印出当前时间?
## 1. 做实验引发的思考在之前学习RT-Thread操作系统时,我发现一个比较有趣的现象:串口打印的日志中竟然包含着当前时间!并且,我每天做实验时,这个日期都会变化,还能保持和当前时间一致!我的好奇心被引发了,系统会不会偷偷配置了RTC,不然它怎么知道现在几点了?怀揣着问题,我决定要去探索一下2. 系统打印出的当前时间这是RT-Thread刚上电时控制台默认打印的内容,可以看到日期在今天:3. 揭晓谜底其实,这些系统之所以准确的打印出当前时间,和板子硬件没有任何关系,更不会使用的RTC
2022-04-23 18:14:02
1667
原创 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
5056
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
4087
2
原创 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
166
原创 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
436
原创 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
225
原创 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
473
原创 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
289
原创 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
185
原创 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
4734
原创 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
1567
原创 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
1534
1
原创 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
2099
原创 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
1335
原创 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
1976
原创 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
256
原创 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
1017
原创 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
755
原创 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
1907
原创 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
6125
原创 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
541
原创 Win10下安装并使用tensorflow-gpu全过程
cpu训练的时间实在是太长,所以想用gpu训练一下,经过了一天的折腾终于可以用gpu进行训练了,嘿嘿~~~ 首先先看一下自己电脑的显卡信息,是否存在独显: 然后进入NVIDIA控制面板->系统信息->组件 查看可以使用的cuda版本 进入官网:https://developer.nvidia.com/cuda-toolkit-archive 找到并下载和显卡信息相匹配的cuda 下载完成后按照默认的执行下去(当然也可以修改安装的路径)...
2021-07-30 14:10:04
640
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
6821
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
10999
6
原创 PyCharm解除远程仓库并连接新仓库上传
1、解除远程仓库在文件的目录右键 git bash here 先初始化输入 git init 然后输入 find . -name “.git” | xargs rm -Rf 2、连接新仓库上传
2020-06-12 17:51:27
726
STM32的开源Bootloader框架 APP 程序制作
2022-04-30
STM32的开源Bootloader框架 RT-FOTA 移植
2022-04-30
STM32F103战舰板+FreeRTOS例程
2018-12-12
STM32F030C8T6_RTC唤醒待机模式
2018-11-09
Multisim14仿真教程
2018-11-09
SVN-安装及汉化包
2018-10-26
xpath-helper 插件及使用方法
2018-10-24
PCB布线规则有哪些
2018-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人