自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mculover666的博客(嵌入式)

微信公众号mculover666,专注于嵌入式领域

原创 MySQL学习笔记 | 02 - MySQL在Windows下的安装、配置、服务启动/停止、用户登录、查看版本号

文章目录1. MySQL介绍2. 下载Windows安装包3. 安装4. 配置图形化配置向导配置文件5. MySQL服务的启动和停止方法1-图形化方法2-命令行6. MySQL服务的登录和退出方式1 - MySQL自带客户端登录方式2 - 使用命令登录 1. MySQL介绍 MySQL隶属于MyS...

2020-03-31 14:11:06 247 0

原创 MySQL学习笔记 | 01-为什么要使用数据库

为什么要学习数据库 数据库的相关概念 数据库存储数据的特点 初识MySQL 介绍 安装 服务启动/停止 服务登录/退出 常用命令 语法规范 1. 为什么要使用数据库存储数据 传统存储数据的缺陷 数组 链表 结构体 …… 数据存储在内存中,程序运行结束数据丢失,断电数据丢失。 文件 ...

2020-03-31 14:07:15 1014 0

原创 一文讲清楚 Linux Shell 编程
原力计划

1. 什么是Shell?什么是Shell脚本? 从字面来看,shell是外壳的意思,Linux shell即linux内核的外壳,提供给用户操作内核的接口; 从实现来看,shell是一个命令解释器,从标准输入接收用户命令,将命令进行解析并传递给内核,内核则根据命令,作出相应动作,如果有反馈信息,...

2020-03-31 14:02:31 346 0

原创 Matlab上位机开发(五)Matlab串口通信

1. Matlab串口通信 Matlab提供了串口通信的功能,串口通信的流程如下: 1.1. 创建串口对象 创建一个串口对象的API如下: scom = serial('<串口号>'); 串口号为COM8的形式,这个API有个缺点:不能自动检测目前电脑中存在中的串...

2020-03-26 12:53:26 944 0

原创 Matlab上位机开发(四)Matlab获取自带摄像头或者USB摄像头数据
原力计划

1. Matlab安装插件 安装支持包(前提需要登录Matlab账号):

2020-03-25 08:46:19 1047 0

原创 Matlab上位机开发(三)波形显示(幅度和频率可调节)

1. 控件布局 打开Matlab,在命令行输入guide启动GUI设计工具,拖动控件开始设计: 波形显示控件(axes) 波形显示控件可以用于绘制各种波形,拖动控件到画布中即可,然后根据需要调整控件大小: 滑动条控件(slider) 滑动条可以用于滑动调节波形的频率和幅度,并拖动两个静态文件控件...

2020-03-24 10:08:27 744 0

原创 Matlab上位机开发(二)Hello,World

1. 启动guide 在命令行输入guide启动Matlab的图形界面设计工具,选择创建一个空白的GUI: 创建之后界面如图: 2. 拖动控件,开始设计 静态文本显示控件 首先从左边控件栏拖动到设计画布中: 然后双击画布中的控件,即可打开该控件的属性设置页面: 属性非常多,可以根据自己的需...

2020-03-24 09:59:38 606 0

原创 Matlab上位机开发(一) —— 了解上位机

在嵌入式项目开发中,无论是单片机项目、嵌入式Linux项目、FPGA项目,上位机始终是一个很重要的部分。

2020-03-23 19:51:34 2346 0

原创 MultiButton | 一个小巧简单易用的事件驱动型按键驱动模块

嵌入式开源项目精选专栏 本专栏由Mculover666创建,主要内容为寻找嵌入式领域内的优质开源项目,一是帮助开发者使用开源项目实现更多的功能,二是通过这些开源项目,学习大佬的代码及背后的实现思想,提升自己的代码水平,和其它专栏相比,本专栏的优势在于: 不会单纯的介绍分享项目,还会包含作者亲自实践...

2020-03-21 14:51:41 3057 0

原创 Linux中使用exec函数族详解及示例代码 | 嵌入式Linux应用开发篇 - 03

1.exec函数族 exec 为 execute(执行),exec 函数族用来替换调用进程所执行的程序,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行,替换前后进程的 PID 不会改变。 exec函数族中包括6个函数: #include <unistd.h> ...

2020-03-14 20:54:08 1712 0

原创 Linux中使用fork创建子进程和使用exit退出子进程详解及示例代码 | 嵌入式Linux应用开发篇 - 02

1. 进程 1.1. 什么是进程 当可执行文件开始运行之后,就变为了系统中的一个进程,一个程序(可执行文件)运行起来之后可以创建多个进程执行,称之为多进程程序。 每个进程包含有进程运行环境、内存地址空间、进程ID、和至少一个被称为线程的执行控制流等资源。 系统中所有的这些进程实体共享计算机系统的 ...

2020-03-13 19:51:07 511 0

原创 Win10桌面美化(桌面数字时钟,悬浮侧边栏、透明任务栏、底部居中软件图标)

生命在于折腾,整理分享一下我的Win10桌面美化历程,先上效果图: 1.

2020-03-13 16:54:47 8485 0

原创 Linux中的文件读写操作详解及示例代码 | 嵌入式Linux应用开发篇 - 01

1. Linux中“一切皆文件” 在Linux系统中,一切皆文件,文件类型根据其表示的意义,分为: 普通文件 设备文件:代表一个具体的硬件设备 管道文件、FIFO文件:具有特殊意义的文件,用于进程间通信; 套接字文件:用于网络通信; 所有这些文件都可以用一套API来操作,最基本的四个API是:...

2020-03-12 19:58:59 537 0

原创 经验分享 | STM32CubeMX + STM32F1系列开发时遇到的四个问题及解决方案分享

这四个问题是我在使用STM32F103C8T6 + STM32CubeMX做项目时遇到的,给大家分享一下,以下四个问题重要程度依次降低,分别是: ① 调试选项问题(默认会造成下载器无法下载); ② 定时器设置占空比的函数找不到报错的问题; ③ 硬件iic的一个小bug(亲测oled可以正常显示)...

2020-03-11 19:26:02 3307 4

原创 STM32CubeMX生成F1的工程中造成 下载器无法下载 问题的解决方案

1. 问题描述 使用STM32CubeMX生成的 STM32F1 工程,在使用 CMSIS-DAP 下载器下载一次之后,造成无法下载的问题,如图,下载器可以检测到,但是下载器无法连接芯片: 直接下载当然一定也会出问题了,如图: 2. 问题原因分析 造成这个问题的原因非常难受: STM32Cu...

2020-03-11 18:41:24 2003 0

原创 STM32CubeMX生成F1的工程中提示找不到 __HAL_TIM_SetCompare 问题的解决方案

1. 问题描述 在用STM32CubeMX生成 STM32F103C8T6 的MDK工程后,在main.c中更改定时器占空比计数值的时候,报错: 总之就是HAL库内部API函数__HAL_TIM_SetCompare找不到。 2. 解决方案 经过搜索,该函数在stm32_hal_legacy....

2020-03-11 17:43:15 1580 0

原创 Android IoT开发实战 | 11 - 发布正式签名的APK安装包

本系列IoT App开发笔记系b站视频教程学习笔记,视频地址: 【7天Java0基础速成安卓开发】Day1 Android工程代码是怎么运行的 【7天Java0基础速成安卓开发】Day2 常用控件和界面布局设计(上) 【7天Java0基础速成安卓开发】Day3 常用控件和界面布局设计(下) 【...

2020-03-10 08:58:50 1560 0

原创 Android IoT开发实战 | 10 - 添加一个炫酷的时间选择控件

本系列IoT App开发笔记系b站视频教程学习笔记,视频地址: 【7天Java0基础速成安卓开发】Day1 Android工程代码是怎么运行的 【7天Java0基础速成安卓开发】Day2 常用控件和界面布局设计(上) 【7天Java0基础速成安卓开发】Day3 常用控件和界面布局设计(下) 【...

2020-03-10 08:48:22 319 0

原创 Android IoT开发实战 | 09 - 导入MQTT jar包对接EMQ-X服务器(封装并发布JSON格式数据,使用handle处理MQTT接收回调逻辑)

1. 下载并导入到AS工程 jar包可以 从我的不限速下载站下载: 不限速下载站 导入到方法非常简单,复制jar包到AS目录中的libs文件夹即可: 等待gradle同步完成,导入成功。 2. ...

2020-03-10 08:39:08 445 0

原创 Android IoT开发实战 | 08 - 四种基本控件布局方式

1. LinearLayout(线性布局) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.co...

2020-03-07 20:57:28 906 0

原创 Android IoT开发实战 | 07 - 常用控件的使用

文章目录1. TextView2. Button2.1. 布局2.2. 监听器3. EditText4. ImageView 1. TextView 使用示例: <TextView android:layout_width="match_parent" a...

2020-03-07 14:54:57 1374 0

原创 Android IoT开发实战 | 06 - 使用 Intent 切换活动

1. Intent Intent 是Android中各组件之间进行交互的一种方式,可以指明当前组件想要执行的操作,比如: 启动活动 启动服务 发送广播 2. 使用Intent Intent有非常多的重载构造函数,其中一个是: Intent(Context packageContext, Cla...

2020-03-07 12:46:56 307 0

原创 Android IoT开发实战 | 05 - 使用 Toast 弹出提示信息(设置按钮事件监听器)

1. Toast Toast是Android中提供的一种消息提示机制,它会弹出一个提示信息,并且一段时间之后自动消失,非常方便。 2. 使用示例 在活动文件中添加如下代码: Button login_button = (Button)findViewById(R.id.button_login);...

2020-03-07 10:50:57 285 0

原创 Android IoT开发实战 | 04 - 创建一个新的活动Activity(登录界面)

在显示HelloWorld之前,我希望它可以有一个登录界面,所以需要创建一个新的活动来写登录界面和登录逻辑代码。 1. 创建活动文件LoginActivity.java 生成的文件如下: 自动生成的内容如下: 2. 创建布局文件 创建之后自动生成的内容如下: 添加一个登录按钮: ①...

2020-03-07 10:36:26 352 0

原创 Android IoT开发实战 | 03 - Android日志工具Log的使用

1. Android中的Log工具 Android开发时,提供了一个日志工具类,android.util.Log,这个类中提供了5个方法供开发者打印日志信息: Log.v():级别verbose,最低(4) Log.d():打印调试信息,级别debug,低(3) Log.i():打印普通信息,级...

2020-03-07 09:55:07 364 0

原创 Android IoT开发实战 | 02 - 无需一行代码的HelloWorld(更换阿里云镜像源,解决构建慢的问题)

1. 创建HelloWorld项目 遇到问题: 这是因为网络问题没有下载下来。 2. 解决gradle下载慢的问题 国内网络下载Gradle安装包太慢了,所以需要手动从别的地方把这个包下载下来。 2.1. 找到项目构建依赖的gradle版本 2.2.手动下载gradle安装包 访问我的下...

2020-03-07 08:35:07 2371 2

原创 Android IoT开发实战 | 01 - Android 开发利器 Android Studio 3.5.3

1.Android Stduio Android Studio 是谷歌推出的一个 Android 集成开发工具,基于IntelliJ IDEA,Android Studio 提供了集成的 Android 开发工具用于开发和调试。 在IDEA的基础上,Android Studio 提供: 基于Gr...

2020-03-07 08:06:38 697 1

原创 RT-Thread Studio 使用笔记(九)| 开启OLED显示(使用 u8g2 软件包 c-latest 版本)

1. 添加u8g2软件包 2. 编辑代码 /* * Copyright (c) 2006-2020, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date...

2020-03-05 22:03:21 1396 7

原创 RT-Thread Studio 使用笔记(八)| 使用MQTT对接EMQ-X服务器(使用 pahomqtt 包)

1. 添加mqttclient软件包 2. 添加测试代码

2020-03-05 21:41:45 1268 0

原创 RT-Thread Studio 使用笔记(七)| 配合STM32CubeMX添加裸机驱动(以ADC为例)

1. 配置STM32CubeMX 2. 复制stm32xxxx_hal_msp.c文件 将 CubeMx 生成的代码 stm32f7xx_hal_msp.c 函数复制到 RT-Thread Studio 生成的工程中,并参与工程编译: 由于我们并没有使用 CubeMx 生成的工程,所以这里需...

2020-03-05 16:51:35 1564 2

原创 RT-Thread Studio 使用笔记(六)| 获取光传感器数据(I2C设备驱动+BH1750手写驱动代码分享)

1. 介绍 2. 添加I2C设备 2.1. 打开I2C设备驱动框架 双击左侧 RT-Thread Setting 文件,即可打开RT-Thread图形化配置工具,软件模拟I2C这一项是灰色的,表示没有打开,单击一下即可打开软件 I2C 的驱动框架,图标变为彩色表示打开: 右击该选项可以打开更多配...

2020-03-05 15:43:11 1063 0

原创 Linux内核移植笔记 | 06 - 移植Linux 3.4.2 内核到JZ2440(移植DM9000网卡驱动,支持网络,支持NFS挂载,支持域名解析)

1. 移植DM9000网卡驱动 之前配置使用的SMDK2440开发板,默认不支持DM9000网卡驱动,但是其中的MINI2440开发板支持,所以要将MINI2440中的DM9000驱动移植到SMDK2440中。 进入内核源码目录里面,找到 arch/arm/mach-s3c24xx/目录并进入,找...

2020-03-05 13:02:43 406 0

原创 Linux内核移植笔记 | 05 - 移植Linux 3.4.2 内核到JZ2440(内核裁剪)

1. 为什么需要裁剪内核 在前面的移植过程中,内核编译出来有 2414KB,而 Nand Flash 的 mtd 分区中指定了 kernel 分区为 2M=2048KB,所以需要对内核进行裁剪,去除不必要的内容。 2. 内核裁剪方法 内核裁剪的方法非常简单,打开编译配置: make menucon...

2020-03-04 20:29:59 500 0

原创 Linux内核移植笔记 | 04 - 移植Linux 3.4.2 内核到JZ2440(移植支持yaffs2文件系统)

1. yaffs2文件系统的优势

2020-03-03 15:51:25 243 0

原创 Linux内核移植笔记 | 03 - 移植Linux 3.4.2 内核到JZ2440(使用busybox制作根文件系统)

1. 编译安装busybox 系统环境: ubuntu 18.04 64bit arm-linux-gcc 4.4.3 1.1. 下载 官网下载挺快的:https://busybox.net/。 此处使用1.20.2版本,在下载页面的最下面。 下载完成之后解压出来: tar -jxf bu...

2020-03-02 17:26:08 292 0

原创 Linux内核移植笔记 | 02 - 移植Linux 3.4.2 内核到JZ2440(修改内核中的mtd分区)

1. 问题 在上一节Linux系统启动之后,打印出的分区表如图: 和实际对nand flash的分区表不一致,实际上在uboot移植教程(08 - 移植uboot 2012.04到JZ2440(设置mtd分区表))中,对内核的mtd分区情况如下: 0x00000000-0x00040000 : ...

2020-03-01 21:22:21 270 0

原创 Linux内核移植笔记 | 01 - 移植Linux 3.4.2 内核到JZ2440(配置编译内核,设置machid启动内核)

0. Linux内核启动流程 1. 获取并解压内核源码 Linux内核官方网站:www.kernel.org。 本教程中使用的是3.4.2版本,比较旧,所以我放在公众号里了,请在文末关注公众号Mculover666,回复关键词“内核源码”获取。 获取之后放到Linux系统上,解压: tar -j...

2020-03-01 18:57:12 420 0

原创 uboot研读笔记 | 11 - 移植uboot 2012.04到JZ2440(移植完成,制作uboot补丁)

1. 为什么需要补丁 补丁文件就是通过对比当前文件和源码文件之后,得到修改内容的文件。 有了补丁文件,就可以在uboot2012.04的源码之上,直接打补丁,就会变为移植好适配JZ2440的uboot,非常方便, 在分享或者发布的时候,因为Uboot源码是统一的,所以只需要分享或者发布这个补丁文件...

2020-03-01 11:50:14 292 0

原创 uboot研读笔记 | 10 - 移植uboot 2012.04到JZ2440(烧写Linux内核、烧写yaffs2文件系统)

1. 烧写Linux内核 在上一篇文章中设置了默认内核启动参数和命令,如图: 启动时内核先会进行倒数计时,如果没有操作,就会执行图中的命令,从nand flash中的kernel 分区处读取内核到内存中的0x30000000处,也就是SDRAM起始地址,然后从0x30000000处启动内核。 所...

2020-03-01 10:29:39 387 0

原创 uboot研读笔记 | 09 - 移植uboot 2012.04到JZ2440(设置默认环境变量参数)

1. 定位环境变量问题 目前移植的uboot支持SDRAM、Nor Flash、Nand Flash、DM9000网卡,但是还有一行警告没有处理:

2020-03-01 08:09:20 384 0

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