自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cyang's blog

嵌入式入门/*到头发护理*/

  • 博客(141)
  • 资源 (7)
  • 收藏
  • 关注

原创 selenium 4 raises exception without useful message

selenium 4 raises exception without useful message

2023-12-23 15:33:59 419

原创 STM32F0实现IAP升级固件

好几年前写过一篇关于,但是使用的芯片是 STM32 F4 系列,升级固件的方式是在外部 flash 的 fat32 文件系统中存入固件文件,reset 后通过特定按键进入 IAP 程序。最近需要在 STM32 上实现同样的 IAP 功能,但是方式不太一样,也发现一些芯片的差别,在此记录一下。

2023-08-04 23:23:32 508

原创 STM32 I2C OVR 错误

STM32 I2C 用作从机时,开启如下中断并启用 callback 回调函数。每一次复位后,从机都可以正常触发地址匹配中断ADDR,之后在该中断的回调函数中启用接收中断去收取数据时,却无法进入RXNE中断,而是触发了 OVR 错误中断。

2023-07-24 21:12:59 1273

原创 STM32 I2C clock stretching

In an I2C communication, the master device determines the clock speed. Unlike RS232 the I2C bus provides an explicit clock signal which relieves master and slave from synchronizing exactly to a predefined baud rate.However, there are situations where an I2

2023-07-24 20:55:08 807 1

原创 c# nameof

nameof是C#6新增的一个关键字运算符,主要作用是方便获取类型、成员和变量的简单字符串名称(非完全限定名),意义在于避免我们在代码中写下固定的一些字符串(hardcode),这些固定的字符串在后续维护代码时是一个很繁琐的事情。

2022-09-29 10:13:11 2666 1

原创 滑动鼠标滚轮后浏览器页面抖动

关闭平滑滚动

2022-04-17 14:58:40 720

原创 c# tuple 和 switch 搭配使用

搭配使用 tuple 和 switch(string Str, char Separator) tuple = myEnum switch{ MyEnum.RED => (text, '-'), MyEnum.YELLOW => (text, '.'), MyEnum.GREEN => (text, '/'), _ => (text, 'u'),};测试代码namespace Any{ public class TupleSwitch {

2022-03-27 16:14:22 646

原创 Github Action 编译和发布APK

使用 Github 的 Action 来自动编译并且发布软件到 Release如下代码分为两个部分,Build 生产 APK发布 APK 到 release 页面代码如下:name: Build and Releaseon: push: branches: - master - "feature/*" tags: - "v*.*.*" pull_request: branches: - master - "feat.

2022-03-13 21:51:51 2855

原创 移动宽带获取 IPv6

获取光猫管理员账户密码咸鱼发送光猫SN, 成本4元。分享一个我的管理员账户密码。账户:CMCCAdmin密码:CMCCAdminqhyt5y0P用管理员账户密码登录光猫后台备份当前设备修改连接方式为桥接,由路由器负责拨号勾选 IPv6 协议光猫自动重启路由器设置拨号上网...

2022-03-10 22:16:42 2657

原创 微软surface book 3没有wifi怎么解决

2021-10-10 11:03:05 2892

原创 Samsung Galaxy Note20 Ultra 充电曲线图

从10% 充电到 100%,用时大概1小时。峰值充电功率 25w 左右,在充电前期通过会在 25w 和 10w 左右循环,充电 90% 以后,功率开始慢慢下降。

2021-06-06 22:02:06 1622

原创 chromecast 断电重启后时间错误

chromcast 断电后时间错误把 chromecast 一边电源口接到电脑上,另一边用 hdmi 接到电视上。在电脑上执行,将默认的时间更新服务器修改为阿里云。adb shell settings put global ntp_server ntp.aliyun.com.前提条件电脑上安装好 ADBchromecast 打开开发者权限及USB调试chromecast 可以通过遥控勾选同意调试...

2021-06-06 21:55:41 1955

原创 Chromecast 播放电脑本地视频

如何使用 Chromecast 播放一个本地电脑上的视频呢?1 首先需要下载 VLC 播放器,需要下载 nightly build 的版本,发行的版本目前看不支持投屏。2 播放任何一个本地视频3 选择 播放 -> renderer -> local -> chromecast,此时电脑便会停止播放,而显示如下画面4 enjoy it on your sofa....

2021-05-16 16:41:58 1574

原创 C# 静态构造函数

一、基础概念1、静态构造函数和实例构造函数相似的地方静态构造函数的名称必须和类名相同构造函数不能有返回值。2、静态构造函数和实例构造函数不同的地方静态构造函数声明中使用 static 关键字类只能有一个静态构造函数,而且不能带参数静态构造函数不能有访问修饰符类既可以有静态构造函数也可以有实例构造函数。3、如何使用静态构造函数不能从程序中显示调用,系统会在如下两种场景自动调用它们:在类的任何实例被创建之前;在类的任何静态成员被引用之前。case 1: 在类的任何实例被

2021-04-26 22:21:26 256

原创 C# 字符串数组中查找是否有匹配字符串

有两种方式来实现,第一种:Any()第二种:FirstOrDefault()这两种方式都会在找到第一个匹配的字符串后停止查找。还可以设置在比较时候忽略大小写,targetString.Equals(id, StringComparison.OrdinalIgnoreCase);如果没有找到匹配字符,也可以抛出异常。使用 string.join() 把待选字符串组合起来输出。using System;using System.Linq;namespace Any{ class Pr

2021-04-25 11:11:14 4932

原创 Win10 安装 IE11 教程

win10 安装 IE11 教程最近一位朋友说报名系统需要使用 IE11 才能访问,但是电脑没有安装 IE11,网上下载的又被系统检测到病毒。因此有了如下教程,从官方渠道下载 IE 11。一、打开系统设置,选择应用二、点击可选功能三、点击添加功能四、勾选 Internet Explorer 11,选择安装五、等待安装完成六、重启电脑七、Enjoy~...

2021-01-16 20:10:54 20699 6

原创 leetcode 29.两数相除

一、题目leetcode给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.3333

2020-09-25 21:22:09 225

原创 Nexus5 刷入官方固件失败

一、 错误提示$ ./flash-all.shSending 'bootloader' (3124 KB) OKAY [ 0.310s]Writing 'bootloader' OKAY [ 0.492s]Finished. Total time: 0.900srebooting into bootloader OKAY [ 0.003s]F

2020-09-15 22:22:24 1386

原创 去除安卓5.0上的感叹号的解决方法

adb shell settings put global captive_portal_mode 0 之后飞行模式一下,就可以了。

2019-06-23 10:31:19 870

原创 Win 10 安装 NET Framework 3.5错误解决

参考百度经验 地址

2019-05-14 22:33:10 2400

原创 ssh 连接 ubuntu12.04 提示服务器拒绝了密码

一、问题使用xshell 通过 ssh 连接 vm 虚拟机下的 ubuntu12.04,提示服务器拒绝了密码。二、解决方法1、尝试修改 vim /etc/ssh/sshd_config 文件的如下内容# Authentication:LoginGraceTime 120PermitRootLogin yesStrictModes yes...# Change to no ...

2019-05-11 20:47:03 1409

原创 enum枚举类型

阅读下面的程序,写出输出内容。#include <stdio.h>enum { ITEM_A = 0, ITEM_B = 0, ITEM_C};int main(int argc, char const *argv[]){ printf("%d\n", ITEM_C); return 0;}

2019-04-14 15:19:52 393

原创 修复 j-link "the connected j-link is defective" 警告

一、现象j-link ob 提示 “the connected j-link is defective” 警告,每次下载都需要点击确定关闭,另外单步调试经常死机。二、解决方法参考这篇帖子。具体就是修改 IAR 安装路径下的 JLinkARM.dll 文件。路径为:D:\Program Files (x86)\IAR Systems\Embedded Workbench 7.5\arm\...

2018-12-20 17:35:24 31940 8

原创 IAR开发STM32堆栈设置

一、前言关于堆栈的定义在此就不赘述,详细内容可以看这篇博客。堆栈溢出会导致野指针,返回地址错误等问题,通常程序已经无法正常运行,进入 HardFault 异常中断。为了避免这种情况,一般会分配较大的空间用做栈,可是如果仅仅为了安全就分配大空间的栈势必导致内存浪费。本文介绍两种获取栈最大消耗的方法,以方便合理设置栈的大小。二、方法1、方法一栈指针 SP 指向的位置可以反应出当前栈的消耗量。...

2018-10-25 22:28:12 3469

原创 汇编文件从 keil 移植到 IAR

1、修改段和区域的写法系统段和区域在 ADS 下定义为 AREA,在 IAR 下定义为 RSEG,因此需要做如下更改。keil 下的写法AREA |.text|, CODE, READONLY, ALIGN=2IAR 下的写法RSEG CODE:CODE:NOROOT(2)2、修改 RN 伪指令在 ADS 中,可以使用语句 name RN Rn 来给 寄存器 Rn...

2018-10-19 10:38:19 1569

原创 ide 与 leetcode 运行结果不一样

在做 leetcode 的第 15 题, 3Sum 时发现,同样的代码在本地运行的结果是正确的,而在 leetcode 的服务器上结果却是错误的。而且检查了程序中,也并没有使用全局或者静态变量。通过打印,仔细对比两种环境下的输出发现,原来是在代码有一条语句指针指向了数组外边的第一个地址。语句是内容是比较当前地址的值是否和后一个地址的值相同, 由于后一个地址实际上已经发生了溢出,在当前地址为...

2018-09-15 15:07:15 10611 1

原创 j-link v9 修复记录

j-link v9主控: stm32f205RC现象1、给 M0 下载固件的过程中经常出错,提示找不到M0。需要反复尝试很多次才可以下载。2、在一次正常的拔线断电后,再也无法识别,灯也不亮了。修复方法1、准备另一个可以使用的 j-link。这里使用的就是这种只有四根线,只支持 SWD 的 j-link OB。2、拆开坏了的 j-link v9, 可以看到 PCB ...

2018-09-13 12:05:46 8403 6

原创 MPEG Audio 简述

MPEG AUDIO 简介MP3 是 MPEG Layer3 音频压缩技术的简写,这种技术可在音质极少损伤的情况下获取更好的压缩性能。MP3文件可以被压缩成不同的速率,文件压缩的越小,音质损伤越大。标准的压缩比例为10:1,一段3分钟的音频数据压缩后只需4MB大小。MPEG 音频压缩算法由联合图像专家组开发,作为高质量数字音频数据压缩的国际标准。MPEG-1 音频压缩算法基于两种机理来减少...

2018-08-12 16:16:48 4644

原创 前导零计数

前导零计数计算一个 32位 数头部 0 的个数。例如 1 前面有 31 个0, 0 则前面有 32 个0。C 语言实现int cntLeadingZeros(uint32_t i){ int ret = 0; uint32_t temp = ~i; while(temp &amp; 0x80000000) { temp &lt;&lt...

2018-08-02 18:03:06 8082 1

原创 fread 返回 0

fread 函数一直返回 0,检查过读取的数量不会超过文件大小,错误发生在打开文件时错误。错误代码如下:FILE *in_file, *out_file;unsigned int open_files(const char *in_file_name, const char *out_file_name){ if( in_file = fopen(in_file_name,...

2018-07-25 21:14:05 4087

原创 记一款游戏--《程序员升职记》

最近在玩一款编程类的游戏,叫做《程序员升职记》,steam 平台只需¥36。通过组合几条非常基本的指令,例如加减、自加、自减、比较、跳转,实现一些小功能,例如简单的数值绝对值输出、两数乘法、阶乘运算、反转字符串等。游戏的本质是一款支持 11 条指令,最多支持 24 字节内存的 8 位 cpu 的运行。这款游戏前面的一些关卡主要在引导和介绍游戏,同时不断给出新的指令,开始只有简单的几条指...

2018-07-22 11:01:18 31821 2

原创 PCM 转 WAV

PCM 数据无法直接通过播放器打开,因为少了 44 字节的文件头,这里面最主要的信息是描述该 PCM 的采样频率,通道数,以及位数。双击 pcmToWav.exe,拖入待转换的 PCM 数据,输入通道数和采样频率,默认使用 16-bit 表示一个采样点。等待程序运行结束,就会生成一个同名的 .wav 文件。python 源码# -*- coding: utf-8 -*-# @...

2018-06-07 19:43:14 2931 2

原创 文件转换为C数组 fileToC

fileToC简单说明fileToC 是一款使用 python 编写的程序,可以将任意文件的二进制数据转换为 .C 文件的数组,以便程序编译。双击 fileToC.exe 程序,将要转换的 test.any 文件拖入命令行,等待程序自动转换,结束后便可以得到一个和该文件同名的 .c 文件结果如下:test.any 文件的二进制数据分析这款程序的使用场景是当我们编程时...

2018-05-18 13:25:27 2836 2

原创 CSDN博客数据导出

CSDN2HEXO 源码地址CSDN2HEXOCSDN2HEXO 是一款基于CSDN开放平台 的 csdn blog 内容下载器, 可以下载博客中的文章内容和图片,文章保存为 markdown 格式,图片可下载无水印图片,并根据文章标题生成文件夹存储相关数据。用法1、首先需要获得开发者认证,并创建应用,获取到 App_key 和 App_secret 以通过 OAuth2 认证,...

2018-04-28 14:46:23 3278

转载 C语言中,隐藏结构体的细节

本文转载自 博客园我们都知道,在C语言中,结构体中的字段都是可以访问的。或者说,在C++ 中,类和结构体的主要区别就是类中成员变量默认为private,而结构体中默认为public。结构体的这一个特性,导致结构体中封装的数据,实际上并没有封装,外界都可以访问结构体中的字段。C++中我们尚可用类来替代结构体,但是,C语言中是没有类的,只能用结构体,但很多时候,我们需要隐藏结构体的字段,不让外...

2018-04-18 17:49:48 691 1

原创 C语言 符号的不同意义

C语言的许多符号在不同的上下文环境里有不同的意义,相当于被“重载”了。如下展示了一些符号的不同意义。static在函数内部,表示该变量的值在各个调用间一直保持延续性。类似与全局变量,区别在于作用域不同。在函数外部,表示该函数或者变量只对本文件可见。extern用于函数定义,表示全局可见(属于冗余,因为函数名在默认情况下具有外部的链接属性,如果函数没有在调用它的转换单元中定义,编...

2018-03-27 22:53:22 2446 2

原创 IAR 和 keil 使用外部 SDRAM 的区别

当芯片内部的 SRAM 不够用时,就需要在外部扩展 SDRAM,然后在写程序时将一些比较大的 buffer 定义在外部内存中。在进行正确的配置之后,对外部 SDRAM 的使用,和芯片内部的 SRAM 是一样的,可以直接对 SDRAM 的地址进行读写访问。因此,最简单的方法就是,如下所示的代码,直接使用指针指到外部 SDRAM 的地址,之后对指针进行移动,便可以对全部 SDRAM 进行读写。使用...

2018-03-26 19:34:15 2711

原创 C语言 ringBuffer 实现

一、 ringBuffer 介绍ringBuffer 称作环形缓冲,也有叫 circleBuffer 的。就是取内存中一块连续的区域用作环形缓冲区的数据存储区。这块连续的存储会被反复使用,向 ringBuffer 写入数据总是从写指针的位置开始,如写到实际存储区的末尾还没有写完,则将剩余的数据从存储区的头开始写;从该 ringBuffer 读出数据也是从读指针的位置开始,如读到实际存储区的末尾...

2018-03-22 20:30:13 16531 6

原创 C语言 malloc 内存泄漏

错误代码如下:int Init_layer2_Decoder(void){ Stream = (struct mad_stream*)malloc(sizeof(struct mad_stream)); Frame = (struct mad_frame*)malloc(sizeof(struct mad_frame)); Synth = (struct mad_...

2018-03-18 20:33:29 1303

原创 STM32 硬件CRC和软件CRC速度比较

一、测试条件硬件: STM32L432KC 主频: 80MHz 编译器: IAR 8.20.1 编译选项: High Speed no size constraints CRC 生成多项式: 0x782f二、测试方法软件提前生成CRC表,用于查询。分别使用软件CRC算法和硬件CRC外设对一个缓存进行计算,目的是从该缓存中找到同步头。同步头共11字节,前两个字节为后九个字节的...

2018-03-12 22:46:18 16227 5

Clover_Setup_3.0.406

早期无广告版本,稳定快速,几年前保存的,一只用到现在。

2019-04-09

source insight4 sublime 主题

source insight4 sublime主题分享 参看博客 https://blog.csdn.net/u011303443/article/details/61413583

2018-10-18

j-link v9 bootloader

j-link v9 bootloader 修复 j-link 调固件,方法见https://blog.csdn.net/u011303443/article/details/82685875

2018-09-14

j-link v9 修复

用于修复 j-link v9的固件。 修复方法在见博客https://blog.csdn.net/u011303443/article/details/82685875

2018-09-13

en.stsw-link004

en.stsw-link004 用于下载 STM32 程序 官方原版,给无法从官网下载的人

2018-05-05

j-link最新驱动 18/04/20

jlink最新驱动,支持最新版本JLINK V9,版本号为6.32,官方原版。

2018-04-25

空空如也

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

TA关注的人

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