- 博客(51)
- 收藏
- 关注
原创 Linux系列2:修改linux root@后面的别名
在ubuntu打开终端,老是显示,用户名为atk,终端命令行显示 :atk@atk-virtual-machine,看关很不爽,如何将atk-virtual-machine 改为ubuntu 呢?打开之后,将hostname 改为 ubuntu ,保存出来,重起ubuntu就可以了。注意:要加上sudo ,要不然等下保存时,会提示只读,很难保存出来。在终端输入 sudo vi /etc/hostname。记得要重起ubuntu哦。重启后,重新打开终端,如下。
2025-04-28 09:55:31
233
转载 在rk3328上从零构建ubuntu16.04系统系列(1):sdk的环境配置和编译与uboot的网卡驱动配置
修改过设备树后,要禁止uboot使用kernel设备树,在RK的sdk里面,为了提高uboot的兼容性,bootloader的第二阶段,默认使用了kernel的设备树,这样的话就可以实现一种uboot配置,可以适配同一型号芯片的多种板卡,提高uboot的兼容性。firefly提供的sdk里面的uboot是不支持网络的,但是在实际的开发过程中,uboot通过tftp加载kernel和设备树是比较常见的开发方式,所以,uboot支持网络其实是一个刚需,下面就看一下那些地方需要修改和配置。
2025-04-26 22:38:22
29
原创 RK3568 学习笔记 : u-boot 1000M网络移植
rk3568 rockchip 提供的 u-boot,默认的设备树是读取分区 resouce.img 镜像中的设备树文件,也就是 Linux 内核的设备树 dtb 文件,gmac 网络才能正常使用。如果使用 u-boot 默认的设备树,虽然可以正常的识别到 gmac 设备,但是无法 ping 通 PC 主机,也就是 u-boot 下网络功能并不能正常使用。正点原子 RK3568 开发板:RK3568 开发板。
2025-04-26 22:17:10
993
原创 Linux驱动学习-----使用pinctrl和GPIO子系统
GPIO子系统是Linux内核的一个组成部分,用于管理通用输入/输入引脚。它提供了一种标准化且统一的接口,使用户程序和驱动程序能够与硬件上的GPIO进行交互。它的功能包括:①:引脚控制(输入输出,电气属性配置)②:值的读取以及写入,读取或者输出引脚的值③:中断支持配置引脚触发中断。在设备树中GPIO和pinctrl的信息只是用来描述引脚映射关系的,也就是说,pinctrl代替了我们之前所用的IMUX这个复用寄存器,它中是选出IO的复用于哪一个功能,不进行具体的操作,具体的IO操作和引脚复用选择。
2024-04-18 10:34:44
1076
原创 嵌入式Linux基础入门
修改makefile文件KERN_DIR为自己内核所在路径,在01_all_series_quickstart/05_嵌入式Linux驱动开发基础知识 \。/source/02_led_drv/02_led_drv_for_boards/100ask_imx6ull_src_bin中。找到驱动源码01_all_series_quickstart/05_嵌入式Linux驱动开发基础知识 \。一切顺利,就能在开发板的/mnt文件夹中访问到Ubuntu的/home/book文件夹里的文件了。
2024-04-05 21:53:37
1109
转载 TMS320F28034 eCAN特性
标志AAIM,WDIM,WUIM,BOIM,EPIM,和WLIM (GIM.14-9) 应一直被设置(启用这些中断)。缺省情况下,这种模式被选中。(a) 由于在配置时,DBO (MC.10) 设置为零,MSGCTRL(1) 设置为2,数据存储在CANMDL(1) 2 个最有效字节中。(4)自动应答消息对象 ---------》此模式下当邮箱接收到相应的请求帧后,便会自动发送应答的数据帧。(3)远程请求消息对象 ---------》用于发送远程请求帧,并等待接收另一个节点返回的相应数据帧。
2023-12-08 14:52:48
811
转载 DSP_TMS320F28377D_ADC应用
前言DSP各种模块的使用,基本上就是 GPIO复用配置、相关控制寄存器的配置、中断的配置。本文主要记录本人对ADC模块的学习笔记。TMS320F28377D上面有24路ADC专用IO,这意味着不需要进行GPIO复用配置。只需要考虑相关控制寄存器和中断的配置。看代码请直接跳到最后。
2023-12-06 22:18:57
3980
2
转载 TMS320F28034工程模板建立及LED测试程序编写
和③一样鼠标右击工程F28034_Learn→Properties选中General→在选中DSP型号,我这里需要下到Flash中所以选中F28034.cmd。
2023-12-06 14:08:13
882
原创 C# 正则表达式(Regex类)
正则表达式是由普通字符(如英文字母)以及特殊字符(也称为元字符)组成的一种文字模式这种文字模式可用于检查字符串的值是否满足一定的规则,例如:验证输入的邮箱是否合法输入的身份证号码是否合法输入的用户名是否满足条件等也可以进行字符串的替换和提取所以,正则表达式可以是单个字符,也可以是更复杂的模式字 符描 述\转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反过来^匹配输入字符串的开始位置$匹配输入字符串的结束位置*匹配前面的零次或多次的子表达式+
2022-12-31 16:15:28
12503
原创 C#实现十六进制与十进制相互转换以及及不同进制转换
在程序中,十六进制的表示形式通常为字符串;而十进制则为数字整型(本质的内存存储都是01二进制)。C#中提供了内置的转换方法,同时,我们也可以依据不同进制之间的规则自己实现进制之间的转换。
2022-12-31 15:12:37
15014
原创 C#读写文本文件(.txt)之1
如果要读取的文件内容不是很多,可以使用或指定编码方式的方法,它们是基于下的类,它们都一次性将文本内容全部读完,并返回一个包含全部文本内容的字符串。也可以使用方法File.ReadAllLines,该方法一次性读取文本内容的所有行,返回一个字符串数组,数组元素是每一行的内容.当文本的内容比较大时,我们就不要将文本内容一次性读完,而应该采用流(Stream)的方式来读取内容。(using System.Text 下面的类)为我们封装了类,它旨在以一种特定的编码从字节流中读取字符。
2022-12-31 10:34:26
4924
转载 TMS320F28335 - eCAP、eQEP
F28335 内含有 6 组 eCAP 模块。每个模块有两种模式:APWM,捕获模式。1.1 APWM模式如果 eCAP 模块不用作输入捕获,可以将它用来产生一个单通道的 PWM。计数 器工作在计数增模式,可以提供时基能产生不同占空比的 PWM。CAP1 与 CAP2 寄存器作为主要的周期和比较寄存器,CAP3 与 CAP4 寄存器作为周期和比较寄存器 的影子寄存器,其原理框图如下:28335中已经有6路增强PWM了,基本上用不上这个。主要还是用它的捕获功能。1.2 捕获模式。
2022-12-21 11:27:15
4609
转载 TMS320F28335工程printf()的使用
printf()重定向输出打印会出现一系列的问题。在进行程序调试时,建议用方法3,相较于方法2来说,此时无需RS232、SCI以及串口调试助手,在CCS的CIO中就可直接看打印结果;当需要将打印结果串口显示时,建议用方法2的2.1,此时可以将要打印的程序写入到FLASH中。
2022-12-21 10:56:13
2260
原创 DSP TMF320F2803x 串行通信接口SCI
SCI 是两线异步串行端口,通常称为 UART。SCI 模块支持 CPU 与其他使用标准非归零(NRZ)格式的异步外围设备之间的数字通信。SCI 接收器和发送器均具有 4 级深度 FIFO,以减少服务开销,并且各自具有自己的独立使能和中断位。两者都可以独立运行以进行半双工通信,也可以同时运行以进行全双工通信。为了确保数据完整性, SCI 在中断检测、 奇偶校验、 超载、 和组帧错误方面对接收到的数据进行检查。可通过 16 位波特选择寄存器将位速率编程为不同的速度。
2022-12-17 10:30:43
1408
转载 DSP TMS320F2803x 模数转换 ADC 详解
TMS320F2803x 的 ADC 模块是12位循环 ADC。部分 SAR,部分流水线。其核心是 12 位的转换器,有两个采样保持器,可同时或顺序采样。通过多路复用后有 16 个模拟转换输入通道。转换器可以配置为与内部带隙基准一起运行,以创建基于真实电压的转换,或者与一对外部电压基准(VREFHI/LO)一起运行,以创建基于比率的转换。ADC 模块的功能包括:具有内置双采样保持(S / H)的 12 位 ADC 内核同时采样或顺序采样模式。
2022-12-16 18:19:42
5124
1
原创 DSP TMS320F28034 程序烧录配置RAM & FLASH
烧录到RAM还是烧录FALSH,我们先来说说这两都的区别。烧录到RAM,一般是在调试的过程中使用,这样执行速度会比较快,但是断电后,程序并没有保存在DSP里面。而烧录到flash,一般是应用在调试完成后,烧录到flash里的程序,断电后,程序不会丢失。烧写到RAM和烧写到FLASH 的配置有些许不同。主要区别在于.cmd文件。
2022-12-16 09:41:06
5978
原创 C#三种定时器Timer详解
Timer控件只有绑定了Tick事件和设置Enabled=True后才会自动计时,停止计时可以用Stop()方法控制,通过Stop()停止之后,如果想重新计时,可以用Start()方法来启动计时器。而第二种和第三种计时器执行的方法都是新开一个线程,所以执行效率比第一种计时器要好,而第三种互操作性差,且容易出错,所以我们在应用定时器时,一般都会选择第二种。自动重置,默认为值true,true表示每次间隔结束后都会引发一次Elapsed事件,false表示仅在首次时间间隔后引发一次Elapsed事件。
2022-12-12 19:52:45
20548
2
转载 Visual Studio 2022安装配置|项目运行|问题解决【C#学习】
Dev C++很久不在更新,对于C语言的标准支持不够好vc6.0太古老,98年的软件了。
2022-12-12 08:26:06
3435
原创 C#winform 之MDI容器
MDI是指将多控件窗体在同一窗体中打开,可以设置重叠打开,平捕打开等,MDI窗体(Multiple-Document Interface,多文档界面)用于同时显示多个文档。在项目中使用MDI窗体时,通常将一个MDI窗口窗体作为父窗体,父窗体可以将多个子窗体包容在它的工作区之中。
2022-12-08 18:24:54
4034
原创 C#Invoke和BeginInvoke应用详解
最近,在研究Invoke的使用,但是真的是一头雾水,网上看了很多资料,感觉还是看不懂,因为对于入门级的小白,想像不出Invoke的应用场景,更谈不上如何用了?Invoke的本质只是一个方法,方法一定是要通过对象来调用的。一般来说,Invoke其实用法只有两种情况:也就是说,Invoke前面要么是一个控件,要么是一个委托对象。Control的Invoke一般用于解决跨线程访问的问题,比如你想操作一个按钮button,你就要用button.Invoke,你想操作一个文本label,你就要用label.Invok
2022-12-07 22:05:24
9819
原创 C#窗体怎样实现自适应大小(二)
通过代码的方式来实现控件与窗口的自适应大小,具体代码如下:1、在新建工程中,新建一个类,复制下面的代码里到类中,这样工程中就可以直接调用,实现功能。2、在主窗口中,重新定义 AutoSizeFormClass asc = new AutoSizeFormClass(); 主窗口中直接调用:private void Form1_Load(object sender, EventArgs e) { asc.controllInitializeSize(this)
2022-12-07 15:23:59
2470
1
转载 【STM32多路温控—第五章】接收字节的处理
我们利用上位机对MCU发送指令,意图就是根据发送的指令数值改变其中的参数值,或者执行相关函数。因此接收字节的处理这部分也是值得研究和学习的。首先对数据结构进行确定。数据类型我们依然可以使用结构体进行定义。我们首先定义一个结构体,该结构体里面有两个数据类型,一个是具有13个参数的共同体数组,另一个是一个字节的参数Code,使用来存放帧头,帧尾和校验和。13个参数对应的是要发送的13个16位的温度值,也就是占用两个字节。可以考到这个数据串共占用3+13*2=29个字节。我们在定义一个共同体,我们再了解一下
2022-12-05 21:33:55
541
原创 C# Winform Chart控件用法6之雷达图
1.ChartAreas属性 ChartAreas属性指绘图区,一个控件可以有多个绘图区,比如我要在同一个控件内显示饼图和柱状图,肯定不能放在同一个ChartAreas区域内,应该在同一个Chart控件里增加两个ChartAreas并分别绑定Series对象。所以ChartAreas属性对应的是一个集合。2.Series属性 Series属性就是各种图表的图形啦,比如我们要显示某月的天气变化,那么应该有这样两组数据,一组是天数,一组是每天对应的温度值,同时绑定到Series对象中,再将Serie
2022-12-03 14:12:56
2704
1
原创 C# Winform Chart控件用法5之Bar图
1.ChartAreas属性 ChartAreas属性指绘图区,一个控件可以有多个绘图区,比如我要在同一个控件内显示饼图和柱状图,肯定不能放在同一个ChartAreas区域内,应该在同一个Chart控件里增加两个ChartAreas并分别绑定Series对象。所以ChartAreas属性对应的是一个集合。2.Series属性 Series属性就是各种图表的图形啦,比如我们要显示某月的天气变化,那么应该有这样两组数据,一组是天数,一组是每天对应的温度值,同时绑定到Series对象中,再将Serie
2022-12-03 14:03:29
1201
原创 C# Winform Chart控件用法2 多个chart动态曲线绘制
1、拖3个chart到新建的窗口中,分别命名为chart1,chart2,chart3,再放一个Button,如下图 2、对chart1 的ChartAreas和Series属性进行相应的设置 ChartAreas : 主要对游标和坐标轴进行设置,我们保持默认就可以。其实大部。分的设置,都在Series属性进行,比如设置图标类型(样条曲线、散点、饼图...)、曲线数量、数据点标记样式、图例的名字等等分别在chart1和chart2添加多一个Series,并在ChartType里设置图形样式,然后我们就可以分
2022-12-03 11:05:27
8729
原创 C# Winform Chart控件用法1
Series:最重要的属性,图表集合,就是最终看到的饼图、柱状图、线图、点图等构成的合 Series,应该是整个绘图中最关键的内容了,通俗点说,即是实际的绘图数据区域,实际呈现的图形形状,简单点说,以折线图为例,每个Series就是一条线,每一条线都有自己的绘制形状、样式、独立的数据等。需要注意的是,每一个Series,你可以指定它的绘制区域(即把哪个Series画在哪个ChartArea),默认情况下,如果不自己再添加绘图区域ChartArea,则所有的Series会画在同一个ChartArea。
2022-12-01 14:27:32
10148
原创 C# ListView用法详解
2、Name: 程序里调用的名称,Text:表格里显示的信息,其它可以设置大小等信息。3、显示网格线 属性 GridLines --- True。1、点击表格右上角的三角形,添加表头信息。这样,一个listView就画出来了。4、往表格里填写数据,跟着来就可以了。5、改变背景颜色,和字体颜色。
2022-12-01 07:48:55
12099
原创 C# Split()用法详解
最近在写 modbus上位机控件,看了网上很多资料,感觉问题应该不大,可是在写代码的过程中,Split这个用法,让我搞了两个多小时,事情是这样子的。看起来没有问题呀,但是编译时,却一直提示错误:错误 CS1503 参数 1: 无法从“string”转换为“char”怎么出现这个错误呢?于是又网上查找,但都没有找到相对应解决方法。想想,逻辑上没有错,定义也没有错,那就只能是这个用法出错了,所以找了下Split()这个方法的用法,并做个笔记,希望以后不要再犯这种错误。
2022-11-28 21:47:54
12119
2
原创 C#窗体常用属性
右击窗体,查看属性,点击事件后找到Load事件,双击一下就会在设计器里面自动加载触发事件的代码,在.cs界面直接可以在load事件方法内补充你触发事件后执行的操作代码。在窗口中单击右键,选择【属性】,弹出属性设置界面。这个方法弹出来的窗体和父窗体(上一个窗体)是属于同一等级的窗体,这两个窗体可以同时存在而且可以随意切换。在窗口中单击右键,选择【属性】,弹出属性设置界面。选择【Icon】,选择图标,打开,进行图标变换。我们可以用新的图片替换窗口的图标,图片的格式只能是“ico”格式。
2022-11-21 09:21:31
3011
原创 C#窗体怎样实现自适应大小(一)
以前用串口助手时,没有发现什么不对劲的地方,但自己写的上位机控件,点击窗口最大化时,界面却没有按相应的比例放大,让人看得很不舒服,其实,知道窗口有自适应这一说法,可在C#里如何实现呢?在C#编程里,使用布局控件实现窗体的自适应大小,相信很多朋友都用过吧,用过的不要吐糟,没有用过的可以参考参考,谢谢各位狼友。这两个控件,在 工具箱---容器 里面tableLayoutPanel 是列表布局flowLayoutPanel 是流布局2.1 新建一个窗口Form 2.2 拖一个tableLayoutPanel到窗
2022-11-20 19:58:50
16577
1
原创 C# 弹出小窗口并将窗口参数返回给主窗口
先启动Form1,点button1,弹出Form2,在Form2窗口,点Send 铵键,就把67890传回Form1并textbox里显示出来,如何实现呢?)的基础上,我们实现窗口之间参数的传递,界面如下。
2022-11-20 11:19:51
5798
原创 C# 按Button弹出新的窗体 Show()方法 和 ShowDialog()方法
所以此时,主窗口是form2,只能编辑form2的内容,点击 退出按键,才能回到form1编辑。注意:Show()和Hide() 是一对,ShowDialog()和Close()是一对。请一一对应,不能混用的哦。在做串口通信程序时,有个想法,当点击串口设置按钮时,弹出一个新的窗口,可以设置串口相关信息,如何实现这一操作呢?3 在新的界面,选择【窗体(windows 窗体】→【添加】,生成“form2”窗体。2 选择项目名称,单击右键,选择【添加】→【窗体】,弹出新的界面。按键,进入代码编写界面,插入代码。
2022-11-20 10:09:51
21809
1
原创 C# 如何去除Strings中空格
最近在写一个串口监控的上位机软件,由于用到串口收发程序,自然就要面对空格符,\r\n 这些特殊字符的困扰,那么,在c#平台下,我们应该有高效的去掉这些特殊字符呢?String.Trim() 方法去除字符串的头和尾的空格,不幸运的是.。比如上位机发送 string textStr = " This is my first\nstring\r\n is\t too long to ";头尾空格去掉了,但中间的空格还在呀?总不能就这样发给MCU吧,那MCU端解码不是很头大?
2022-11-19 09:17:17
3813
原创 C# PadLeft、PadRight用法
在平时开发中,总能遇到流水号的问题,类似yyyy-MM-dd-00001的情况,许多时候我们在拼接字符串的同时,需要把"00001"左边的0补齐,C#中有两个函数可以帮你快速的完成这件事。
2022-11-18 21:38:01
1455
转载 PID调参过程详解(包括增量式和位移式)
总结:一开始先加大比例P,p小了会达不到目标速度,会差很多,所以再加大p,知道电机出现‘嗒嗒嗒’的抖动或者观察上位机的波形剧烈抖动的时候,这时候p就过大了,实际上p可以不是很大,比如400,调试时候增加幅值可以设为20,I稍微来点就可以,平衡车的工程经验是ki=kp/200,但是这里我给的是0.2,还要看具体情况,积分参数过大,实际速度和目标速度的静差会很大。由上图可以看出,我们提高了P的值一定程度上消除了静差,提高了响应速度,但是会导致系统震荡,故我们加入微分D可以有效抑制震荡.预设目标值是11000。
2022-11-18 17:04:11
3393
原创 C#中的console是什么作用?
C#中的console表示控制台。console是一个类,它封装了控制台的一些基本操作,如【Console.Write】,表示向控制台直接写入字符串。Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入。Console.WriteLine 表示向控制台写入字符串后换行。Console.Read 表示从控制台读取字符串,不换行。Console.ReadLine 表示从控制台读取字符串后进行换行。
2022-11-12 14:51:52
2767
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人