自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 电量计导致的安卓开机一半自动关机故障

回想起来板子用了一颗CW2017,今天把电池插错了,电池正接到了板子负极,电池负接到了电量计TS,虽然很快就意识到错误并断开了连接,并且后来还一度运行了一段时间,但是重启后就一直故障了,那肯定就是电量计TS脚烧了。乘着正在启动没有熄火的时间内,赶紧在AS下adb logcat -b,看了下最后几行。shutdown,thermal,battery说明是电池过热。断开CW2017的VCC后,可以正常开机。

2024-09-05 19:44:54 412

原创 RK3568 安卓12 EC20模块NOCONN没有ip的问题(已解决)

注意,这个rillib.so是移远提供的。把他们提供的文件放到rk3568_android_sdk/vendor/rockchip/common/phone/lib下,主要的是libreference-ril.so和libril.so这两个文件。编译提示冲突,把rk3568_android_sdk/hardware/ril/libril/Android.mk,修改成Android.mk.disabled,或者别的什么名字,目的就是不编译系统自带的libril源码,使用移远提供的so文件。

2024-07-15 16:56:43 613 2

原创 安卓包含JNI文件报File error accessing recents directory (directory doesn‘t exist?).

我的错误原因为cpp里的一个函数中数组越界,所以碰到这个错误极有可能是cpp文件问题,应该确保cpp里的函数功能一切正常。另外kotlin文件中的函数和cpp中对应的jni函数返回值不一样,也会报这个错误,有时候编辑器检查不到。

2024-06-15 17:13:54 492

原创 freertos串口DMA队列发送卡死

另外发现回调函数中,只写HAL_UARTEx_ReceiveToIdle_DMA就可以了,停止DMA再开启,会导致接收数据丢失一部分,比如我原本要接收9个数据,每次只接收到了5个,原因未知。调试回调函数的时候,我在cube中删除了默认的DMA通道,又新增了另外一个通道,导致NVIC中,该通道的优先级为0,后来改成了5就正常了。

2024-05-25 18:19:59 556

原创 记录一次STM32F4 USB VCP不能使用的经过

刚做的板子,使用CUBEIDE配置VCP,WIN10下无法识别设备,尝试过各种解决办法无果,连板子上的USB插座都被我焊下来检查了,还直接剪了根USB线直接焊上去,故障如旧。最后重新创建了个工程,居然神奇地就好了,对比了两个工程的时钟树,没发现任何问题,十分无语,到死也没弄明白这到底是怎么回事。

2024-02-28 15:11:49 303

原创 使用HAL_UARTEx_ReceiveToIdle_DMA,不接RX引脚的后果

因为只想看单片机发出来的数据,所以串口模块只连了STM32的TX,没接RX,然后出现非常离奇的事情,明明使用HAL_UART_Transmit发送12个字节的数据,却每次都会多收到1W多的数据,多收到的数据有一部分还是那12个字节之后定义的。百思不得其解,用尽了各种手段,一度奔溃,无意中,注释掉HAL_UARTEx_ReceiveToIdle_DMA的两行代码就好了。我使用信号量来判断是否接收到数据,接收不到就再循环发送两次,异常是哪次发生的也不是固定的。不知道底层原因是什么……

2023-11-29 16:03:03 757 2

原创 STM32 HAL库多路PWM没有输出踩坑记录

这一改,看似天衣无缝,却没有想到灾难性的一下午就降临了,管脚没有输出,改管脚输出的上下拉模式,改时钟,改PWM设置里的各种setting,后来一度怀疑这个芯片的TIM3是不是有问题?我只能说,ST,你把TIM_CHANNEL_ALL放那下面是想要坑死谁?是个正常人都会觉得那个是用来配置全部通道的吧,唉。无奈之下,去掉所有PWM,针对某一路管脚,改用GPIO切换状态,发现正常,换了一个定时器13。这时候心里一阵阴霾。赶紧用示波器测量……

2023-11-14 19:07:43 1677 3

原创 C语言strcat执行后末尾多了不相关的内容?

今天在用strcat连接两个字符串的时候,发现运行后,字符串末尾多了两个字符,后来查看内存才知道,参数2那个字符串后面的内存不是0,strcat应该是判断到‘\0’才结束,所以改用strncat,指定长度更加可靠。

2023-09-01 15:51:29 161

原创 指针的初始化和赋值

int main() { int i, *p; i = 10; *p = i; }报错:警告 C6001 使用未初始化的内存“p”。错误 C4700 使用了未初始化的局部变量“p”被指针折磨了很多年,有时候理解,过段时间又忘了。写个什么来加深一下印象吧。指针是地址,指针是地址,指针是地址!看看代码,先看看int *p;//首先声明了p是个指针变量,其次这个指针变量是指向int类型的。再看*p=i;相信不少...

2021-10-13 17:30:19 412

原创 安卓kotlin协程中更新UI

button.setOnClickListener { CoroutineScope(Dispatchers.IO).launch { try { val sc = Socket(srvUrl, mPort) sc.soTimeout = 10000 val os = sc.getOutputStream() ...

2021-09-21 15:37:27 2763

原创 使用ROS的catkin_make编译不了项目

因为使用的是别人的工作空间,他之前指定了编译指定的功能包,所以再次在工作空间中运行catkin_make,默认的只编译之前指定的包,这是catkin_make的一个坑吗?换言之,我后面下载下来的包,它是不管的。这时需要编译全部功能包,或者在双引号内加入你需要编译的包catkin_make -DCATKIN_WHITELIST_PACKAGES=""或catkin_make -DCATKIN_WHITELIST_PACKAGES="move_base_msgs"...

2021-07-14 09:02:53 1937 1

原创 在阿里云的centos上使用chart.js

首先安装npm。yum install npm使用npm下载chart.jsnpm install chart.js --save会报错:npm WARN saveError ENOENT: no such file or directory, open '/root/package.json'执行以下命令:npm init -y然后修改package.json{ "name": "root", "version": "1.0.0", "description"...

2021-03-18 11:32:44 133

原创 安卓Module with the Main dispatcher is missing.报错

在使用Dispatchers.Main作为上下文启动协程时报错:E/E: java.lang.IllegalStateException: Module with the Main dispatcher is missing. Add dependency providing the Main dispatcher, e.g. 'kotlinx-coroutines-android' and ensure it has the same version as 'kotlinx-coroutines-c.

2020-09-03 15:29:40 4200

原创 树莓派小车3——安卓客户端

项目地址 https://github.com/ffmydream/WiCar界面做的很难看,美工方面实在不在行。重点是按钮触摸事件的处理,这里搬了RepeatListener项目代码,例如: leftButton.setOnTouchListener( RepeatListener(300, 300, //两个参数,第一个参数:首次响应延时,即第一次响应和第二次响应的间隔时间,第二个参数:从第二次响应后,以后每次响应间隔时间 .

2020-08-21 09:54:14 206

原创 树莓派小车2——用GO搭建tcp服务器实现远程控制

很早以前就想做个树莓派wifi小车,带实时视频功能,可以用手机控制,满足一下自己童年的梦想,以前弄单片机的时候,视频传送这块一直没突破过去,现在发现树莓派还是挺方便的,通过这段时间摸索,逐渐实现了一部分功能,前不久折腾完PCA9685,基本上解决了小车的驱动问题了,然后自己写了个安卓小程序,目前控制舵机还是挺顺畅的,小车还没完全组装好,最近又去折腾了一下esp8266,还有因为比较懒~写博客的目的是怕自己时间长了会忘记踩过的坑,做这个的目的,也纯粹是为了好玩,因为自己也是新手,所以我的做法并不具有指导意

2020-08-20 16:50:27 920

原创 PCA9685寄存器用法和通信(三)——使用golang

导包的时候会报错,网上有解决办法。package mainimport ( "github.com/op/go-logging" "github.com/sergiorb/pca9685-golang/device" "golang.org/x/exp/io/i2c" "log" "time")const ( I2C_ADDR = "/dev/i2c-1" ADDR_01 = 0x40 SVO_TYPE = 180 //舵机类型:最大转角 SERVO_HORIZ =.

2020-08-07 19:30:00 511 2

原创 PCA9685寄存器用法和通信(二)

今天记录一下使用wiringPi库操作PCA9685控制舵机的方法。首先抄袭一下舵机角度和占空比的关系:一个周期为20ms的脉冲里面高电平持续的时间决定了舵机转动的角度,180度舵机对应关系如下:0.5ms--0度,1ms--45度,1.5ms--90度,2ms--135度,2.5ms--180度。于是我封装了两个函数pca9685_init和pca_set_angle。pca9685_init用来设置PWM频率。pca_set_angle(int channel_id,int srv_

2020-08-05 16:32:45 1324

原创 PCA9685寄存器用法和通信(一)

在使用树莓派控制舵机的时候,由于树莓派自带的硬件PWM资源少,稳定性差,所以买了块PCA9685模块,芯片本身是比较简单的,但是网上教程混乱,互相抄袭,看的云里雾里,无奈只好自己啃了一下datasheet,有些值得注意的地方,在这里记录一下,只挑我自己用的上来写,有些没有详细验证,可能理解有出入。以上PCA9685的寄存器大致分几个类型(模式选择、通道配置、频率设置)。MODE1、MODE2是模式选择,LED0_ON_L,LED0_ON_H,LED0_OFF_L,LED0_OFF...

2020-08-04 13:06:23 5817 4

原创 树莓派golang调用wiringPi

用go搭建tcp服务器,实在很方便,调用C写的底层应用也很方便,有些特别注意的地方,红色标记,以便以后查阅package main/*#cgo LDFLAGS: -Llib -lwiringPi //编译时链接wiringPi库#include <stdio.h>#include <unistd.h>#include "wiringPi.h"void ctest(){ wiringPiSetup(); pinMode(2,OUTPU...

2020-07-27 13:50:27 595

原创 stm32cube+freertos+lwip中socket客户端发送数据

这段代码是我从网上copy的,我要实现的就是基本功能,给192.168.1.2这个服务器,每2秒发送一段字符串,可折腾了大半天,一直调不通,开始以为是代码问题,后来才发现踩到SHI了,具体怎么回事看最后,fu*k!#include "main.h"#include "cmsis_os.h"#include "lwip.h"#include <lwip/sockets.h>#include <lwip/err.h>#include <lwip/sys.h&gt

2020-06-05 21:39:56 2193 1

原创 FreeRtos cmsis_os2中内存池Memory Pool的使用方法

基本用法就是根据自定义的数据类型,使用osMemoryPoolNew函数定义一定数量的数据块,osMemoryPoolAlloc函数进行实时分配,osMemoryPoolFree函数进行释放。官方称比动态分配的方法快很多,具体效果我暂时还没有测试。#include "cmsis_os2.h"// CMSIS RTOS header file/*----------------------...

2020-01-09 13:31:19 4421 1

原创 kotlin 使用httpclient下载流式文件

import org.apache.commons.httpclient.HttpClientimport org.apache.commons.httpclient.methods.GetMethodimport java.io.Filefun main() { val file = File("1.jpg") val client = HttpClient() ...

2020-01-03 08:48:28 1058

原创 Altium Designer 2020 多板系统设计 (一)

先进的电子产品通常由多块PCB板组成,这些PCB板通过相互连接以创建完整的功能系统。从主板、前面板、LCD模块的设计,到带有插槽的复杂有源背板系统,都是作为一个多板设计的系统来实现的。 为了将多个“子”PCB板从电气和物理上连接在一起,同时保持其引脚和网络连接的完整性,需要一个高水平的设计系统。Altium Designer以专用多板设计环境的形式支持集成系统级设计...

2019-12-21 15:31:53 11379

原创 kotlin 并发和管道channel

import kotlinx.coroutines.*import kotlinx.coroutines.channels.Channelval channel = Channel<Int>(2)fun main() = runBlocking<Unit> { launch { var x = 1 while (x <...

2019-12-19 16:11:08 1105

转载 Java/Kotlin下串口通信

转发自:https://www.jianshu.com/p/c907cc951e6e项目中使用串口作为通信接口的场合较多,在此标记一下,感谢一下原作者原文如下:Java/Kotlin的串口读写相对于.NET平台来说比较复杂。现在网上流传的方法一般是RxTx库,还需要导入一些dll什么的。感觉有些过于麻烦了,就自己Google了别的方案,果然发现一个更方便的。使用Gradl...

2019-08-29 12:19:03 1838 2

原创 安卓使用layout布局文件生成报告并打印

打印报告的时候,如果使用截屏的方法,必须要先生成报告界面(我认为的),然后截屏再打印,此方法简单容易实现,但是生成的报告,依赖于安卓屏的物理像素,放大至A4纸打印之后,往往字迹比较模糊,此时可以通过生成PDF的方法打印,但是像素不够的问题怎么解决,github上找了一个名叫Android-PdfMyXml开发包,地址https://github.com/HendrixString/Andr...

2019-06-25 13:49:42 1460

原创 kotlin字符串转16进制

String.toInt(16)

2019-06-04 09:25:42 7133

原创 JAVA 16进制转字符串问题

最近设计一个程序,串口发送命令,坑里转了好几天,在此做个记录。如果使用String.valueOf(0xFF)或者Integer.toString(0xff)简单的将一个int类型转换成String,如0xFF,会转换成“255”,那么在串口发送的时候,只会发送“25”。正确的方法是使用Integer.toHexString(0xff);...

2019-06-03 11:06:26 2343

原创 安卓实现开机自动运行APP

直接在AndroidManifest.xml中加入下面红色部分代码,重启机器后,系统提示选择默认桌面,选择直接开发的APP即可。测试环境安卓6.0,系统root过,没ROOT的没试过。<activity android:name=".activity.MainActivity"> <intent-filter> <action ...

2019-05-21 09:49:54 6906

原创 使用STM32CUBEMX 新HAL库TF卡模拟U盘不能格式化问题

单片机型号F767,CUBEMX版本V5.01,HAL库版本1.14.0,开发软件True Studio不得不说,基础很重要,按照网上之前的教程,照葫芦画瓢,但是新的HAL已经改动了,陆陆续续调了一个星期,WIN7下U盘盘符是有了,但是始终不能格式化,用这个板子测试CDC和HID都没有问题,一直静不下心来阅读USB协议和SD卡的相关协议,后来还是在论坛找到了原因。其实把usbd_stora...

2019-05-07 17:55:21 3522 8

STM32CUBEIDE 的HAL库TF卡模拟U盘

单片机型号F767,CUBEMX版本V5.01,HAL库版本1.14.0

2021-05-25

空空如也

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

TA关注的人

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