- 博客(39)
- 收藏
- 关注
原创 J-LINK RTT代替串口进行打印
J-LINK RTT代替串口进行打印官方教程源码获取:从JLINK安装目录拷贝RTT 压缩包SEGGER_RTT_V688a.zip到工程添加源码:SEGGER_RTT_V688a\RTT 文件夹下的文件添加入工程,并包含入头文件。源程序配置RTT1.设置RTT上传和下载buffer,默认上传1K2. 测试功能:设置RTT接收数据然后回显int main(void){ /* USER CODE BEGIN 1 */ int GetKey; /* USER CODE END 1
2022-05-25 14:46:40
454
原创 STM32F4系列DMA使用
简短记录下遇到的问题, 在使用HAL库创建SPI+DMA工程的时候,每次DMA发送都提示发送错误。分析最终发现,DMA发送数据的内存地址IAR工程映射到了0X1000,0000区域的CCMRAM 中,该区域只能提供 CPU进行数据总线访,dma无权限。通过修改ICF文件:place at address mem:ICFEDIT_region_SRAM1_start { readonly section .dmabuffer};声明buffer的时候将buffer放到SRMA中即可解决问题。uint
2021-12-03 12:59:10
612
原创 VSCODE Remote SSH免密
VSCODE Remote SSH免密参考了大部分教程,有些小坑这里记录一下。总共一下几步:在local主机生成id_rsa.pub文件#windows powershellssh-keygen -t rsa -b 4096 -f C:\Users\用户\.ssh\id_rsa#linux terminalssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa将id_rsa.pub文件上传到远程主机的 ~/.ssh 目录把pub写入authoriz
2020-12-11 15:34:25
295
原创 正余弦编码器的单片机测量(仅原理)
正余弦编码器的单片机测量编码器波形测量原理单片机测量步骤编码器波形CHA 是cos ,CHB是sin。CHA 超前CHB 90°测量原理反正切测量方法:a=sinX,b=cosX.tanX=a/b,X=arctan(a/b)其中a,b是AD采样值,X是角度。通用原理:单片机测量步骤预设定值:SIN_MAX_ADC:最大ADCSIN_MIN_ADC:最小ADCSIN_OFFSET_ADC:offset ADC同步ADC采用,获取CHA_ADC,CHB_ADC.归一化处理,
2020-09-15 08:44:38
4934
1
原创 锯齿波编码器的单片机测量(仅原理)
锯齿波编码器的单片机测量(仅原理)软件算法流程分析软件算法流程分析角度与频率测量:Step1. 预设值值。Max_volts_adc: 最大电压ADC值Offset_volts_adc:offset电压ADCMin_volts_adc:最小电压ADC值Step2. ADC 同步采样CHA,CHB 的值。Step3. 对CHA,CHB ADC值进行归一化,方便后期处理。CHA,CHB的值在-32768-32768之间。对应-180-180°-Step4. 由于CHA超前CHB
2020-09-14 13:28:31
825
原创 IAR 工程自动导入SourceInsight
IAR 工程自动导入SourceInsight引言IAR工程文件的分析导入SourceInsightPython源码实现引言最近用公司的代码框架,准备使用SourceInsight进行代码编辑阅读,发现框架的东西分散的太多,一个个导入太耗时,如果全部文件导入,又会有文件的冲突。所以开发一个python工具来进行自动的导入。IAR工程文件的分析IAR工程文件有5个,我们只需要使用dep文件,这其实是一个XML格式文件,我们从里面取出工程使用到的.C.H.S.CPP文件的路径,并生成txt文本格式
2020-05-20 17:00:17
1929
原创 Selenium +RobotFrame 教程(二):Selenium Grid
Selenium +RobotFrame 教程(二):Selenium Grid目录Selenium +RobotFrame 教程(二):Selenium Grid1.引言2.grid 集成工具包下载3.配置及启动Hub4.配置及启动Node5.编写测试脚本,测试grid是否运行正常。1.引言上一篇教程实现了本地的web自动测试的搭建,这里继续学习如何使用Selenium Grid实现分布式...
2020-04-16 14:58:07
402
原创 Selenium +RobotFrame 教程(一):安装及配置
The IEDriverServer exectuable must be downloaded and placed in your PATH.On IE 7 or higher on Windows Vista or Windows 7, you must set the Protected Mode settings for each zone to be the same value. The value can be on or off, as long as it is the same fo
2020-04-16 14:20:55
988
原创 XMC系列正交编码器的测量
1.最近再用XMC4700系列测量QEI,编码器只使用了A,B相。XMC的硬件连接使用POSIF +CCU80来测量 编码器的RPM和位置变化。3.配置好POSIF。使用POSIF的正交时钟触发CCU80的一个计数器,来记录位置变化使用正交时钟触发CCU80的一个捕捉单元,来记录每个脉冲的时间。关键部分: 在测量脉冲宽度的时候,要设置位浮动预分配模式,这样可以避免被测信号过慢而...
2020-03-06 15:11:12
902
1
原创 MCU-Bootloader
首先说明下flash。flash由N个扇区组成。1个扇区=16 page1page =16 block1 block =4 bytes其中最小的写入单元是block,最小的擦除单元是page。即64bytes1个扇区就是1K.2.介绍下中断向量表。arm复位之后从地址0开始,这个0地址的值代表的是栈的地址。紧接着0X00000004 ,开始中断向量表。0X04包含的就是复位的...
2019-11-29 14:38:20
1139
原创 一起学IAR汇编,第四天————M0内核指令集
今天我们开始查看具体的指令集,不同内核包含的指令集不同,具体参考这篇文章cortex-M内核指令集这边先开始M0的指令集。m0实现了大部分thumb-1指令,但不包含1.CBNZ, CBZ(比较为零/非零跳转)2.IT(根据指定的条件来执行后面相继的四条指令)内容补充,立即数。3位立即数即指3bit 范围0~7, 8位立即数就是0-255.具体指令功能:...
2019-10-28 11:28:47
1358
原创 一起学IAR汇编,第三天————伪指令
今天来看看伪指令集,根据不同的指令集,相应的位指令也可以分为3类:1.ARM2.CODE16(THUMB-1)3.THUMB(THUMB-1& 2)单片机开发,主要用到THUMB指令集,所以下面就只介绍THUMB指令集的伪指令。THUMB指令集的伪指令指令注释ADR{condition} register,expression将地址加载到寄存器ADR...
2019-10-28 10:08:15
918
原创 一起学IAR汇编,第二天————操作符 和 指令
现在开始我们学习汇编的操作符与C的运算符类似,汇编也包含大部分C支持的运算符,并且优先级设定都相似。下面列举汇编中特有的操作符,注意SFB的使用BYTE1 例子: BYTE1 0xABCD –> 0xCDBYTE2 例子: BYTE2 0x12345678 –> 0x56BYTE3,BYTE4DATA1 当前秒DATA...
2019-10-28 09:36:02
3007
原创 一起学IAR汇编,第一天————IAR汇编基本知识:formate,symbol,lst格式文件
前言:工作中多多少少会接触到汇编,大部分都是前人写好的。最近在顺手学习下操作系统的,下定决心开始汇编学习。准备工作cpu的指令集是固定的,但是编译器的差别会影响汇编语言。这里主要学习IAR的汇编。参考文件EWARM_AssemblerReference。可以在IAR的help选项中下载得到。本系列都是以参考文档顺序学习的开始External interface details (Pa...
2019-10-24 10:08:47
1635
原创 IAR中 如何在C++编译环境使用中断函数
如题,在使用C++来编译单片机的时候,发现中断函数进入不了中断发生一直死在startup中,查看map文件发现,根本没有中断函数的接口。查询原因如下,C++编译器会对函数名进行修改,以符合重载。原定义函数:int Func ( int , char * )C++编译后:int Func_i_cp ( int, char* ) 所以中断就找不到入口函数了。解决办法:在头文件中,...
2019-10-18 09:23:50
945
原创 MCU中结构体的初始化问题
今天在调用硬件库,多是对结构体进行赋值配置。有些结构体的参数多则20几个,对于一些默认的配置一般不会列出来。但是如果结构体变量不是全局或者静态变量,结构体里面未初始化的数据变量就不确定。现象描述:对于一个结构体typedef { u8 a; u8 b; u8 c;}test_Itest_I i;i.a=1;i.c=2;运行时查看i.b 非0 ,这个也很正常。由于我的结...
2019-10-17 13:28:17
915
原创 vscode 中C 无法识别__STATIC_INLINE函数的解决办法
由于IAR的编辑太破烂,最近一直都是用IAR创建,调试工程。VSCODE 编辑和build。1.配置如下,插件里面安装必备插件:C/C++IAR For Visual Studio Code这两个插件,其他智能感知插件备选:C/C++ clang command2.VSCODE 打开IAR项目所在文件夹,在左下方,选好project和co’fi’guration。在Terminal...
2019-10-16 16:51:55
2365
3
原创 Docker 开发教程
**1.下载安装docker**1.1由于win10 系统,安装docker desktop。一路next安装完毕启动docker。1.2 点击右下角docker小图标,记得登录你的账号。没有的先注册。2. 配置本人使用docker 主要是进行python开发。Docker有2个概念:image和container。 Image 是根本,容器是image的实现。 关闭docker之后...
2019-09-23 14:21:34
471
原创 Docker 常用指令
1.镜像删除所有镜像:docker rmi $(docker images -q)容器创建镜像: docker commit 容器名 镜像名:版本号2.容器列出所有容器:docker ps -aq停止所有容器:docker stop $(docker ps -aq)删除所有容器:docker rm $(docker ps -aq)...
2019-09-16 13:19:11
173
原创 在Visual Studio Code上开发单片机程序
1. 安装iar 软件和vscode2. vscode 安装插件IAR For Visual Studio Codec++(官方的c++插件也就是第一个3.配置插件IAR For Visual Studio Code点击左下角的齿轮,选择setting,在搜索栏输入iarvsc:这里需要配置workbench : iar的安装路径 。complier: iar编译器路...
2019-08-22 17:09:48
3487
原创 使用IAR创建英飞凌XMC1300工程
1.引言 手头有一块英飞凌的XMC1300 Boot Kit,之前没有接触过,准备用IAR开发,发现网上教程特别的少,就自己摸索并且记录。2.Get Start 英飞凌的官网对于IAR的配置特别的少,寻思着IAR自己是否提供相关例程。答案是肯定的。从IAR获取Example Projects在IAR界面的help菜单中,点击Information Center, 找到Exam...
2019-08-09 11:01:53
2036
原创 C#学习笔记3-override,virtual,abstract
1.什么时候要重写方法?当子类继承父类时,子类中方法名称与父类中方法名称重名时,需要对父类的方法使用virtual变成虚方法;使用关键字override重写子类方法。当子类继承父类时,父类是abstract类时,子类需要多abstract方法进行重写。2.虚方法virtual,子类Son1 对父类的work方法进行了重写,子类Son2没有对父类work进行重写。Son1.work 输...
2019-08-06 10:28:19
181
原创 C#学习笔记-2.调用DLL
1.使用VS 生成dll。namespace DllTest1{ public class Class1 { public void Say(string data) { Console.WriteLine(data); } }}2.在项目的referance中添加dll,然后在命名空间中引入...
2019-08-02 11:19:37
137
原创 C#学习笔记-1.Interface接口
1.接口作用接口只是声明,告诉我们有什么方法,但是具体如何实现要看具体的类或者结构。2 接口的定义接口里面的方法不能访问修饰符(public,private…),接口里面也不能添加字段。接口本身可以使用修饰符。interface Icom{ void do1(); void do2();}3.接口的实现接口的显示实现不需要添加访问修饰符,但是隐式实现式必须添加pu...
2019-08-01 17:14:36
206
原创 Python打包自己的库并安装
1.官方教程根据官方教程建立如下文档,一个文件夹包含setup.py和封装的模块名,这里以pkg_name 定义,在pkg_name文件夹下 包含__init__.py 和src文件 ./test /pkg_name __init__.py mymodel.py setup.py配置setup.pyimport setuptoolswith o...
2019-06-28 15:13:51
7754
原创 VCL语法教程——8.常用Function_SYS 和串口,LCD
SYS模块属性:source_of_system_block ;系统启动时数据恢复的路径 SYS_RESTORED_PFB Restored from power-fail-save block SYS_RESTORED_PER Restored from periodic-save block SYS_RESTORED_NOT Un...
2019-06-13 09:02:24
285
原创 VCL语法教程——7.常用Function_PID和内存管理
PID,PID控制模块PID有2组:PID1,PID2属性: PID#_output方法: reset_PID(PID#) ;RESET All variable to zero automate_PID(8) ;??????????待补充,内存管理,NVM属性NVM是非易失的内存模块,有40组。NVM1~NVM40.每一个里面有15个元素+checksum。需...
2019-06-12 17:18:01
219
原创 VCL语法教程——6.常用Function_math andTIM
VCL语法教程——5.常用Functionmath类型ABS函数,取绝对值ABS 有2路,ABS1,ABS2属性:ABS#_output, 用来保存绝对值后的值方法:automate_ABS(ABS#,Input) 自动取绝对值,结果在ABS#_output里get_ABS(ABS#,Input) 取绝对值,结果通过函数返回,也保存在ABS#_output里...
2019-06-12 15:02:40
381
原创 VCL语法教程——5.手持式1311编程器的支持
VCL语法教程——5.手持式1311编程器的支持创建参数名字,建议使用字典中已有的参数命名,这样会节省资源。字典参考37313A VCL Programmer’s Guide的第24页。例如:参数名定义为myDuty,这个占用6个bytes。但是使用字典里面已有的DUTY就只占1个byte使用^箭头可以进行强制大写,例如要显示PWM,可以写成P^W^M ,首字母不需要向上箭头。菜单...
2019-06-12 10:39:52
428
原创 VCL语法教程——4.map的使用
VCL语法教程——4.map的使用map类似于pspice里面的建模,输入一个X对应一个Y。通过点的数量,来绘制出曲线,在通过给定一个值X,带入曲线得到对应的输出Y。如何定义一个map,例,定义一个名叫map1的图标,通过5个点进行绘制。图形见:实现代码如下:第一个参数是map的命名,第二个参数是map点的数量,后面5对数据对应5个点的X,Y。这里默认最大的I16就是100...
2019-06-12 09:32:00
240
原创 VCL语法教程——3.模块和函数的使用
VCL语法教程——3.模块的使用模块的定义,模块不能嵌套使用begin_module 和 end_module 构成模块例:定义一个名叫mymodule的模块begin_module mymodule code here code here exitend_module模块的调用使用enter-exit来调用和退出模块例:调用上例的mymoduleent...
2019-06-11 17:16:44
367
原创 VCL语法教程——2.循环及运算
VCL语法教程——2.循环及运算运算符= equal to<> not equal to< less than<= less than or equal to> greater than>= greater than or equal toand 相当于C里面的&or 相当于C里...
2019-06-11 16:36:41
240
原创 VCL语法教程——1.变量及labels
VCL语法教程1.变量1.变量Labels标签用于程序的跳转,例如定义一个入口标签mainmain:例如定义其他标签othertask,与goto配套使用main:othertask:goto main...
2019-06-11 16:08:59
663
2
原创 精通反激电源变压器及电路设计-自己的笔记
观看精通反激电源变压器及电路设计视频之后的自己的一些理解及整理。视频观看地址:TI反击电压培训视频1. 首先介绍下反激电源的三种模式 :CCM,DCM,CRM 。上图可见,DCM和CCM是固定频率的,CRM是可变频率的。其中Id为副边的输出电流。分析上图,可知CCM模式下,电流不会趋于0。DCM模式下,电流会趋于0,并且有一定的死区时间。CRM模式下,电流刚刚过零时,就会导通MOSFT。这...
2019-03-26 15:29:04
20139
5
原创 PYGAME入门之飞机大战
pygame的入门,基本都是讲飞机大战,跟随着他人的教程自己摸索了一遍。素材都是自己下载的#!/usr/bin/env python"""This is the full and final example from the Pygame Tutorial,"How Do I Make It Move". It creates 10 objects and animatesthem o...
2019-03-26 15:28:36
323
原创 Python学习——1.文件的更新
说明:通过比较源目录和地址目录文件夹下的VXX,ZIP文件来确定版本号,如果版本号低,就从源目录copy zip文件到地址目录,并且解压,然后删除地址目录的旧的版本的zip文件。import shutilimport osimport zipfile#source :更新文件的目录#dst:应用安装目录class fileupdate: def __init__(self,sour...
2019-01-22 16:59:27
802
原创 基于阿里云端SDK-python的开发,控制设备的LED
基于阿里云端SDK-python的开发这里是配合上一批文章,在上文中ESP8266作为设备,订阅了DATA这个topic,本文章将通过实现通过该topic发送数据给ESP8266 来控制LED的熄灭!SDK的开发及下载参考https://help.aliyun.com/document_detail/42700.html?spm=a2c4g.11186623.6.697.59a036dbks...
2018-10-12 14:24:57
882
1
原创 NodeMCU 通过MQTT 连接阿里云物联网
NodeMCU 通过MQTT 连接阿里云物联网1.NodeMCU固件的选择及刷入ESP82661123
2018-10-09 17:10:36
15527
55
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人