- 博客(200)
- 收藏
- 关注
原创 关于网络变压器和RJ45接头的一些记录!
文章通过实际测试验证了网络设备接线的灵活性。研究发现,RJ45水晶头的接线必须严格遵循国际标准,不能更改,以确保与路由器等设备的正常通讯。但除此之外,网线中RX和TX信号线的接法可以灵活调整,只要保证12口为RX接收、36口为TX发送即可。测试表明,网络变压器接口的线序可以互换,双绞线中的线对顺序也可以调换,这些都不会影响通讯质量。作者通过两小时的实际接线测试,验证了各种接线方式的可行性,为今后设计百兆交换机积累了宝贵经验。
2025-11-11 09:30:20
298
原创 使用HAL_STM32库,添加printf()打印功能。
摘要:本文介绍了使用printf()函数需要勾选UseMicroLIB,并导入string.h和stdio.h库。重点讲解了重写fputc和fgetc函数实现串口输出的方法,包括UART传输配置。同时分享了调试技巧:通过#define和条件编译#if/#endif来批量控制调试打印信息,既方便调试又避免频繁注释代码。这些方法能有效提升开发效率和代码管理便捷性。
2025-11-08 12:42:37
243
原创 STM32F103C6T6一块多钱的MCU居然有USB功能
摘要:本文介绍了在STM32F103C6T6单片机上启用USB虚拟串口功能的详细步骤。通过STM32CubeMX软件配置USB Device(FS)模式,选择虚拟串口模式并修改相关参数。重点说明了需要修改usbd_cdc_if.c文件中的两个关键函数CDC_Init_FS()和CDC_Receive_FS()来实现数据收发功能。测试结果显示,配置成功后可以通过USB实现12M/S的全速通信,比传统串口快很多。文章同时指出该方法虽然简便,但并未深入USB底层原理,并寻求标准库实现方案。整个过程涉及硬件连接(P
2025-11-04 10:56:46
764
2
原创 安卓学习 之 提示对话框AlertDialog
本文介绍了Android中AlertDialog的基本使用方法。通过一个包含两个按钮的布局界面,演示了如何创建和显示提示对话框。主要步骤包括:1)创建AlertDialog.Builder实例;2)设置对话框标题和内容;3)添加"确定"和"取消"按钮及其点击事件;4)调用show()方法显示对话框。文中还提供了完整的XML布局和Activity代码示例,展示了如何通过按钮点击触发对话框,其中"确定"按钮会关闭当前窗口,"取消"按
2025-09-17 09:14:47
608
原创 安卓学习 之 弹出菜单PopupMenu
本文介绍了Android中PopupMenu的实现方法。首先通过findViewById绑定控件,设置点击事件监听器。在onClick方法中分四步实现:1)实例化PopupMenu对象;2)加载菜单资源;3)设置菜单项点击监听器;4)调用show()显示菜单。文中提供了完整的Java代码、布局XML和菜单XML示例,实现点击TextView弹出菜单,并显示Toast反馈的功能。
2025-09-16 10:04:07
463
原创 安卓学习 之 上下文菜单的操作
本文介绍了Android中实现上下文菜单的两种方法。第一种是通过注册上下文菜单,包括三个步骤:1)使用registerForContextMenu绑定控件;2)重写onCreateContextMenu方法加载菜单布局;3)在onContextItemSelected中处理菜单项点击事件。第二种是使用ActionMode实现顶部显示的上下文菜单,需要设置长按监听器并实现ActionMode.Callback接口,重写其四个回调方法来实现菜单创建、准备、点击处理和销毁功能。两种方法都能实现多级菜单功能,开发者
2025-09-15 10:56:15
298
原创 安卓学习 之 选项菜单(OptionMenu)
本文介绍了在Android应用中创建菜单资源的完整流程。首先在res/menu目录下创建菜单XML文件,定义包含主菜单项和子菜单的层次结构。然后通过重写Activity的onCreateOptionsMenu方法加载菜单资源,并使用onOptionsItemSelected方法处理菜单点击事件,通过Toast显示相应提示。关键点包括:确保使用AppCompat主题、正确设置菜单项属性(如id、title和showAsAction)、以及为每个菜单项编写对应的点击响应逻辑。最终实现效果是点击不同菜单项会弹出对
2025-09-14 11:28:14
540
原创 安卓学习 之 Activity的生明周期
Android Activity生命周期详解 本文介绍了Activity的6个核心生命周期方法:onCreate()、onStart()、onResume()、onPause()、onStop()和onDestroy(),并展示了三种典型场景下的生命周期调用顺序: 正常启动和退出 切换到后台再返回 被系统杀死后恢复 代码示例中通过Log打印演示了各方法的执行顺序。生命周期管理是Android开发的基础知识,虽然当前还不清楚具体应用场景,但理解这些方法调用时机对后续开发至关重要。这些方法将在处理界面状态保存、
2025-09-14 09:41:57
343
原创 安卓学习 之 界面切换
学习Android界面切换时遇到程序崩溃问题:使用Intent跳转只能成功一次,第二次切换时改用setContentView导致程序终止。记录了两个关键跳转语句:创建Intent对象和startActivity方法。目前无法解决该问题,但记录了三个界面的布局文件和Activity代码,留待后续解决。主要问题出现在从第三个界面返回第一个界面时的崩溃现象。
2025-09-13 09:44:50
205
原创 安卓学习 之 启动文件之间的关系(布局文件是怎么启动的)
AndroidManifest.xml是Android应用的核心配置文件,主要功能包括:1)声明应用基本信息(包名、版本号);2)注册四大组件(Activity、Service等);3)请求系统权限;4)定义硬件兼容性要求。Activity是UI界面控制器,负责管理窗口、处理交互、处理生命周期,并作为应用通信枢纽。Layout则定义UI结构,通过XML文件控制界面元素的位置、大小和适配不同屏幕,实现UI与逻辑的分离。三者共同构成了Android应用的基础架构。
2025-09-11 09:47:35
999
原创 安卓学习 之 SeekBar(音视频播放进度条)
本文介绍了Android中SeekBar控件的使用方法和事件监听。主要内容包括:1)通过XML设置SeekBar的最大值(android:max)和初始进度(android:progress);2)在代码中使用setProgress()方法设置进度值;3)通过setOnSeekBarChangeListener监听拖动事件,包含onProgressChanged(进度改变)、onStartTrackingTouch(开始拖动)和onStopTrackingTouch(结束拖动)三个回调方法。文中还提供了完整
2025-09-10 11:25:03
336
原创 安卓学习 之 切换按钮ToggleButton
ToggleButton是Android中常用的状态切换控件。它有两种状态:开和关,分别通过android:textOn和android:textOff属性设置显示文本。开发者可以通过setChecked(boolean)方法设置初始状态,并使用setOnCheckedChangeListener监听状态变化。在布局文件中可通过拖拽方式添加ToggleButton,其功能与CheckBox类似,包括获取对象、修改状态和监听状态变化等操作。主要区别在于ToggleButton以开关形式呈现,更适合表示&quo
2025-09-10 10:45:24
193
原创 安卓学习 之 单选框 RadioButton
RadioButton单选控件需与RadioGroup配合使用,实现单选功能。在布局中添加RadioGroup并包含多个RadioButton,设置宽高为wrap_content。与CheckBox的区别在于:1)点击无法取消选中;2)一组RadioButton只能同时选中一个;3)通常以圆形样式显示。通过RadioGroup可实现单选逻辑控制。
2025-09-10 10:32:46
185
原创 安卓学习 之 复选框
摘要:本文介绍了Android中CheckBox控件的使用方法,包括两种状态(选中/未选中)的设置与检测。通过示例展示了如何在XML布局中声明CheckBox控件,并在Activity中使用setChecked()方法设置初始状态(复选框1未选中,复选框2选中)。同时演示了通过setOnCheckedChangeListener监听状态变化,在回调方法中获取当前选中状态并输出日志。完整代码展示了从布局到逻辑处理的完整实现过程。
2025-09-10 10:04:59
246
原创 安卓学习 之 约束布局
本文介绍了Android约束布局(ConstraintLayout)的使用方法。重点讲解了约束布局的两个关键属性:app:layout_constraintBottom_toBottomOf(设置控件底部约束)和app:layout_constraintVertical_bias(设置垂直偏移量)。通过一个红包界面的XML代码示例,展示了如何使用这些属性进行控件定位,包括如何设置控件之间的相对位置关系。文章还提到可以通过Android Studio的可视化工具直接拖拽控件完成布局,系统会自动生成约束代码,同
2025-09-09 11:25:13
321
原创 安卓学习 之 贞布局FrameLayout
本文介绍了Android中的FrameLayout布局,这是一种分层显示控件的布局方式。重点讲解了三个关键属性:layout_gravity(控件位置)、foreground(前景)和foregroundGravity(前景位置)。文章通过一个示例代码展示了如何创建FrameLayout布局文件,其中包含五个尺寸递减、颜色各异的TextView,都设置了居中显示。代码演示了FrameLayout的层叠特性:后添加的控件会覆盖在先添加的控件之上。最后提到需要修改启动界面为新创建的FrameLayout布局并运
2025-09-09 09:25:23
235
原创 安卓学习 之 用户登录界面的简单实现
摘要:该Android应用实现了一个登录验证功能,包含以下特点:1)当用户名或密码为空时点击登录会提示"不能为空";2)输入有效信息后显示进度条加载动画;3)加载完成后在绿色文本框中分别显示输入的用户名和密码。布局采用垂直线性结构,包含EditText、Button、ProgressBar等组件,通过Java代码实现输入验证、进度条控制及结果显示功能。关键点包括:输入内容判空处理、进度条线程控制、UI组件动态更新等。
2025-09-08 17:09:45
987
1
原创 安卓学习 之 ProgressBar(进度条)控件
本文介绍了如何在Android应用中实现进度条控件。主要包含两种进度条样式:圆形加载指示器和水平进度条。重点讲解了通过Thread控制水平进度条动态增长的实现方法,并特别指出Android 4.0+版本中进度条是少数允许在线程中直接操作的控件。代码示例展示了如何设置进度条的最大值、当前进度值以及水平样式等属性。最后强调了循序渐进的学习态度的重要性。文章提供了完整的Activity和布局文件代码实现,适合Android初学者参考学习。
2025-09-07 16:28:36
461
原创 安卓学习 之 图片控件和图片按钮
本文介绍了Android中ImageView和ImageButton控件的使用区别。ImageView会根据控件大小自动调整图片尺寸,而ImageButton则保持图片原始大小。重点讲解了android:src属性的含义,它表示"前景在指定资源文件夹中的图片文件"。文中还包含了完整的XML布局代码示例,展示了如何设置控件的宽高、边距、背景色等属性,以及对应的Activity代码,演示了按钮点击事件的处理逻辑。
2025-09-07 09:43:33
270
原创 安卓学习 之 按钮点击事件
本文介绍了Android应用中四种实现按钮点击事件的方法:1)自定义内部类实现OnClickListener接口;2)使用匿名内部类;3)让Activity直接实现OnClickListener接口;4)在布局文件中添加onClick属性绑定方法。每种方法都包含代码示例和实现步骤,其中第四种方法还支持多个按钮共用一个事件处理方法。文章详细展示了从创建Activity到测试运行的全过程,并附带IDE操作提示,适合Android初学者学习基础事件处理机制。
2025-09-06 12:11:16
782
1
原创 安卓学习 之 EditText 控件
本文介绍了Android输入控件EditText的使用方法,重点讲解了inputType属性的各种取值及其功能。通过xml代码示例展示了如何设置数字输入框、提示文本、最大长度等属性,并详细列举了text、number、password等常见输入类型及其用途。文章强调要根据输入内容选择合适的inputType来提升用户体验,建议组合使用属性值,并注意密码安全和多行文本处理。最后指出合理使用inputType可以使表单输入更加专业流畅。
2025-09-05 16:42:08
227
原创 安卓学习 之 启动界面的设置
摘要:作者回顾了Android开发的学习内容,主要包括新建Activity和布局文件的方法,如何在AndroidManifest.xml中设置启动Activity,以及修改应用名称。还记录了创建新布局文件(线性布局)、添加文本控件、设置长文本显示和滚动效果的过程。最后提到尝试实现文本跑马灯效果但尚未完全掌握。通过实际操作巩固了这些基础知识,并验证了在模拟器中的运行效果。
2025-09-05 09:33:21
636
原创 安卓学习 之 生成APK文件
文章摘要:作者分享在真机测试安卓应用的经验,成功将APK文件通过微信发送到手机安装运行。遇到微信自动添加".1"后缀导致无法安装的问题,通过重命名解决。真机运行效果与开发环境基本一致,但发现模拟器显示长度存在细微差异,具体原因尚待排查。整个过程操作流畅,实现了预期的开发测试效果。
2025-09-04 09:44:15
609
原创 安卓学习 之 模拟登录界面
摘要:作者成功解决了C盘空间不足问题,删除了无用的系统备份文件腾出几十GB空间。经过几天学习,终于完成了一个简单的Android界面设计并在模拟器上运行,虽然界面简陋但充满成就感。文章展示了该界面的XML布局代码,包含线性布局、文本视图、图片视图、编辑框和按钮等控件,并详细注释了各控件的属性设置,包括尺寸、边距、对齐方式等。作者表示虽然目前还不会生成真机APP,但对此充满信心。
2025-09-03 17:37:06
346
原创 安卓学习 之 gradle下载失败的解决方法
本文记录了作者解决gradle下载失败问题的过程。作者遇到连接雷电模拟器超时的问题,发现是gradle未下载导致的。经过多次尝试,最终通过更换镜像源(腾讯或阿里源)成功下载gradle。尽管花费了一整天时间解决这个问题,但作者认为这是学习过程中必经的成长阶段,强调解决问题是掌握技能的关键。文章分享了具体替换镜像源的操作方法,并感叹开发环境搭建的耗时性。
2025-09-02 17:35:17
255
原创 安卓开发 之 相对布局
本文介绍了Android相对布局(RelativeLayout)的基本使用方法。通过代码示例展示了如何通过layout_alignParent和layout_to[Left/Right/Above/Below]等属性,将TextView控件精确定位在父容器的四个角落、中央位置,以及相对于其他控件的上下左右方位。重点说明了控件间的相对位置关系,如above/below等属性的使用方式,并采用不同背景色区分各个控件。相对布局的核心在于理解控件间的相对位置关系,通过实践即可掌握。
2025-09-01 16:49:53
176
原创 安卓编程 之 线性布局:实例
本文介绍了使用线性布局创建的安卓界面实例。界面包含三个主要部分:顶部黑色标题栏(含返回箭头、文字"耳朵"和图片)、中间空白区域和底部灰色工具栏(含三个图标)。通过XML代码详细说明了各控件的属性设置,包括布局方向、尺寸、背景色、边距、权重等。特别强调了图片资源需正确存放在mipmap文件夹中,并利用权重属性实现控件位置控制。作者还绘制了布局示意图辅助理解整体结构。该实例展示了线性布局嵌套使用的基本方法。
2025-09-01 10:24:28
236
原创 安卓编程 之 线性布局
摘要:本文介绍了Android线性布局的两个关键属性:orientation(方向)和layout_weight(权重)。通过代码示例展示了水平排列的三个TextView控件,分别设置权重为1、2、3,将水平空间按比例分配为1:2:3。同时演示了layout_gravity属性控制控件在容器中的位置(底部/居中/顶部)。代码中详细注释了各属性的作用,包括宽高设置、文本样式、内外边距等。该示例直观呈现了权重分配原理和重力定位效果。
2025-08-30 20:25:00
159
原创 STM32实现CAN通讯
本文分享了基于STM32F103和TJA1050模块的CAN通信实现经验。作者首先介绍了硬件连接方案,使用STM32内置CAN控制器配合TJA1050收发器模块。文章详细解析了CAN初始化配置代码,包括GPIO设置、波特率计算(500Kbps)和过滤器配置。提供了完整的发送/接收函数实现,并通过主程序演示了8字节数据的收发测试。最后总结了CAN总线六大核心特性:多主控制、系统柔性、高速远距通信、完善错误处理、故障隔离能力以及多节点扩展性。该方案实现了MCU与PC间的CAN数据交互,为初学者提供了实用的参考实
2025-06-26 16:34:18
766
原创 Android-studio安装步骤开始学习怎么编写安卓应用
我下载到了E盘,据说安装目录不能含有中文,我相信据说,不想挑战一下带有中文是个什么结果?同意要下载的每一项:之后点击finish。开始下载需要的每一项,等待下载完成。
2025-06-16 22:39:55
262
原创 STM32实现RS485通讯
本文展示了RS485通信的实现过程,重点介绍了硬件连接和软件编程。通过RS485转换芯片,实现了数据的收发功能。在数据传输过程中,由于存在错误,建议使用CRC校验以确保数据的可靠性,并在校验失败时进行重发。软件部分通过初始化、发送和接收函数实现了RS485通信,代码中使用了USART2进行数据传输,并通过PB12口控制发送和接收的切换。最终,通过串口调试助手验证了数据的正确收发。整体实现与串口通信类似,但需注意发送接收的切换控制。
2025-05-19 18:45:29
1399
原创 STM32接收红外遥控器的遥控信号
通过几天的学习,成功解析了红外遥控信号的原理。红外遥控信号通过高低电平的时间区分二进制0和1,组合成32位数据。NEC红外码的编码时序中,逻辑1和逻辑0分别对应不同的高低电平时间。接收端通过统计高电平时间判断信号是0还是1。发送信号时,控制IO口的高低电平时间即可。接收信号时,红外接收二极管导通会拉低IO口电平,通过中断统计时间区分信号。NEC码还包括引导码,通过高低电平时间区分。编写程序时,通过统计高电平时间的函数和中断函数,可以轻松实现红外信号的接收和解析。最终,通过程序判断遥控按键的值并执行相应动作。
2025-05-18 05:33:22
1510
原创 STM32编写触摸按键
总体结果就是led1用来体现程序正在运行,不停的闪烁,led用来指示有触摸,还是没有触摸,串口不停地接收到触摸的计数值。先看接线图,挺简单的,就用串口1,和两个led灯一个1MΩ电阻一个触摸导线(如果做电路板的话,就是一个手指大小的铺铜)
2025-03-27 18:51:55
591
原创 嘉立创下载的封装图,个个都有问题,制造时错误不断,要注意!
保存到本地硬盘上了,就能用AD打开,复制粘贴到自己的工程中了,但是这会就要注意了,因为每一个元件都会带着一个Mechanical 15的层,这是一个机械层,这层到底有什么用处我不知道,但是有的画送去加工厂做板时就会告诉你有问题,之前我是没有注意,结果就这个问题改了一天半,才算是改好了,所以这会还是要提前把这一层的东西都删掉比较好。我知道就是加工厂会认为他有问题,叫你改,改的时候就是一个元件一个元件的删除这层,为了后面出现问题,还不如下载完复制到自己的库中时就删掉呢?分清哪个是原理图,哪个是封装图。
2025-03-25 13:00:09
1189
原创 AD20生成贴片文件的步骤
电路图都画好后,而且也制作出了电路板了,我们的焊接技术又不过关,那怎么办呢?只能是花钱来找贴片的给咱们进行机器贴片了。第一步:如图中先后点击 文件->装配输出->Generates pick and place files。第二步:选择要输出的项目列表(也可以按照厂家的要求勾选,当然默认的也就够了,随意!第三步:点击确定后,需要的文件就输出到Outputs文件夹里面了,自行查看就好了。
2025-01-05 09:43:58
1546
原创 关于使用大夏龙雀4G模块透传数据的记录
ML307R的建立UDP连接的过程:第一步:发送DTU命令:AT+DTUTASK="1","10"第二步:建立UDP连接:AT+SOCK=1,1,"longjiushang753.a1.luyouxia.net",26378,1 (可以直接使用域名)第三步:重启ML307R:AT+REST 就这样每次重启设备后,等待串口收到 REGSTER:SUCCESS 这条指令就能直接透传数据了。最好的地方是不用担心ML307R掉线,它会自动重连,直接发送要发送的数据就
2024-11-29 10:18:20
1626
原创 关于I2C读写AT24C04存储芯片的一些浅显认知?
这两天一直在尝试往AT24C04芯片里面存储数据,试了几天了,发现能查找的相关资料还是很少的,有些东西搞不明白,说是可以看数据手册,但是我的英文视频不要太辣鸡了。也许我说的太过了,主要是我这几天视频和网页确实是没有少看,但是没有找到丁点线索,基本上千篇一律,都是互相抄袭的。下面是AT24C256.c文件(刚开始时是手上有C256的芯片,试了一天后发现自己搞不定,就买了24C04芯片来实验,结果也没有搞定,好惭愧啊!如果哪个小伙伴看到了,能够在我的基础上又有了新的发现,望能告知,我在此感激不尽啊!
2024-11-25 15:49:39
553
原创 MOS管知识整理
其实我狗屁都不懂,什么都不会,就是直接用模拟软件来多次的尝试,直到能够成功模拟出我要的结果就好了,特此记录一下今天的模拟过程,防止以后再用到,不会又得从头模拟一遍了,这一遍就把大部分的内容记录下来,下次想用的时候就要快多了。好了,通过上面的实验就能证实我要想用STM32控制12V的通断就用NMOS管就比较合适,高电平时导通,低电平时截止。具体真正实际中还有什么问题,那就是以后的事了,发现问题在解决问题吧!(栅极G电压 > 源极S电压时, PMOS管截止,如下图)
2024-07-14 21:31:31
2136
1
原创 用Python编写一个模拟usb摄像头的程序
昨天有个朋友找我要刷点政府的再就业的视频课,说是就是用浏览器打开固定的网站,然后用身份证号码登录,然后播放里面的视频,不定时的网页会通过usb摄像头拍照做人脸识别,就是这么一个简单的要求,叫我给想想办法,我就想用自动化来处理这个问题,说是每刷满一个人的学时就可以给我100元,我一想这个事可以啊!所以就着急忙慌的开始找办法解决这个问题,最终把虚拟摄像头的问题给解决了,操作浏览器的自动化还没有搞定,但是这个事估计黄了,昨天找完我,今天就没有在问过我了,感觉人家就是说了一下,我就开始搞了。
2024-07-11 11:47:06
1257
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅