- 博客(66)
- 资源 (19)
- 收藏
- 关注
原创 error while loading shared libraries: libQt5MultimediaWidgets.so.5: cannot open shared object file:
将lib下的libQt5Multimedia.so.5.15.3、libQt5MultimediaWidgets.so.5.15.3拷贝到rk3588主板上 /usr/lib/aarch64-linux-gnu/下。5、/home/aarch64-buildroot-linux-gnu_sdk-buildroot/bin/qmake (换成自己的目录)3、解压 tar -xvf qt-everywhere-opensource-src-5.15.3.tar.xz。
2024-10-29 10:48:07
569
原创 浅析STM32外部中断易死机解决
本案例stm32死机或程序跑飞是实际产品中出现的,初步怀疑是外部中断口,有极强的干扰所致,于是拿着信号发生器实测,当信号发生器产生300KHz的信号,甚至到12MHz的信号时,期间,程序跑飞或死机。2、IO中断时,在ISR里先关闭相应的管脚的中断,处理完成后,再开启相应管脚的中 断。解决点:1、初始化时,先关闭总中断,初始化完成后,再开启总中断。笔记记之,以防将来的项目类似故障查询。
2024-08-28 10:14:42
781
原创 手把手移植 simpleFOC (六):成果展示
SimpleFOCShield和SimpleFOCPowerShield两版,均是一版成功,不太喜欢arduino,源码看不到,所以将Simple_FOC-2.3.0.zip都移植到了 vscode下gcc编译成功运行。驱动由stm32cubeMX生成。Simplefoc移植成功,pcb都是一版成功。
2023-08-22 14:03:43
435
原创 手把手移植 simpleFOC (五):电流检测 篇
前期的工作, simpleFoc开环控制已经完成了,实现完整的闭环控制,就差两相电流检测了,主要设计思路是来源于odrive,用产生pwm波的定时器update事件,触发两路adc 注入式采样。硬件管脚分配 ib-----adc in0硬件配置整个串口调试,接收数据来看。电流检测部分成功移植。整个个移植工作都以完成,剩下的只是针对力矩,速度,角度等闭环调试了。
2023-08-10 08:42:46
1196
原创 手把手移植 simpleFOC (四):pwm 六相 篇
今天移植的内容,为定时器生在pwm,能按矢量数据控制电机到相应的位置一、定时器的配置通读了simpleFoc的代码,准备让定时器1生成的pwm波为20KHz,中心对齐模式3,三个通道均工作在模式1,极性为高电平,即TIMx_CNT < TIMx_CCRx时OCxREF信号为高,输出为高电平。
2023-07-30 09:25:16
1276
原创 手把手移植 simpleFOC (三):编码器篇
今天移植的主要内容是simpleFoc的encoder,目标是转到电机,读出对应的角度及角度率。运行结果,编码器程序移植工作正常。只是simpleFoc采用的是外部中断方式进行采集,看了stm32定时器章节,里面有编码器接口功能,后续有必要的情况下会对该部分以定时器接口进行实现。
2023-07-27 14:07:42
946
原创 手把手移植 simpleFOC (二)
本章主要实现 simpleFoc 里的 Serial.print功能,建立setup、loop函数,并且调用Serial.print功能。一、建立目录,提取文件。
2023-07-26 17:12:19
644
原创 手把手移植 simpleFOC (一)
由于之前用的是自画的odrive板子,移植的 simplefoc,驱动用的drv8301。逢上嘉立创免费打样,闲暇之余,重新学习了FOC整个过程。准备再次深入了解simpleFoc和odrive,比较他们的细节差异。就画了两版simpleFoc:一版为SimpleFOCShield(单路):stm32f103cb+L6234D另一版为SimpleFOC-PowerShield(双路):stm32f405G+btn8982。上图:SimpleFOCShield版嘉立创贴片中仿真图还未出。
2023-07-26 10:22:27
2513
原创 allegro制作封装的几个概念
它们一个事物的两种表达方式。区别在于正片就是,你看到什么,就是什么,你看到布线就是布线,是真是存在的。但是我们在begin layer和end layer也设置thermal relief(热风焊盘),anti pad(隔离盘)的参数,那是因为begin layer和end layer也有可能做内电层,也有可能是负片。thermal relief(热风焊盘),主要是与负片进行连接,一般应用在VCC或GND等内电层,因为这些层较多用负片。负片就是,你看到什么,就没有什么,你看到的,恰恰是需要腐蚀掉的铜皮。
2023-06-15 10:48:20
805
原创 Centos 搭建 不同的ftp用户对目录分级管理
建立ftp服务器目录 ftp_repository 使用用户名和密码登陆对它有读写权限,在该目录下建立子目录public可以匿名登陆,对其只有读权限。
2023-05-10 18:56:18
816
原创 基于electronbot作品bootLoader设计
说到electronbot,不得不提及稚晖君,本人一直以来也想做一个能动,有声音,有显示,能遥控等功能的玩具,投入成本和懒散一直搁浅,看了稚晖君electronbot后,感觉是入手不错的选择,模具和结构也不用考虑了,同时被他这种全栈式开发精神所打动!看了该视频演示,第一个想法就是小人装配好之后,如果有新的固件更新,再打开就显得麻烦,所以借用usb通道进行固件更新显得很必要。
2022-12-19 14:49:11
1173
2
原创 基于STM32实现USB复合设备CDC+MSC正确实现方式
看了网上也有相关实现文章,比较HAL原代码框架,无论是odrive里,还是网上其它实现案例,都是通过ep_addr进行switch ,而原代码框架里有USBD_RegisterClassComposite函数,阅读HAL库USB相关代码后,决定以符合原代码框架的姿势打开USB组合设备CDC+MSC
2022-11-27 23:23:13
8535
6
原创 移植 simpleFoc笔记(四)
即整个移植工作告一段落,在测试时,由于手上只有A2212航模电机,闭环也工作起来了,但发烫pid参数还没有时间去调试,也有网上推荐使用云台电机测试。电流采集,即用DRV8301的DC_CAL, gain为40V/V 定时器TRGO触发ADC注入式转换,中断接收转换结果。今天主要记录一下昨天闭环移植的成果,移植了encoder和InlineCurrentSense。也就是电流采集和编码器,本主用的是odrive测试电机,自带了一块TLB5012,ABZ接口。另一方面是中断注册编码器三个函数。
2022-11-16 08:39:04
582
原创 移植 simpleFoc笔记(三)
这次移植成功,主要是定时器1的设定及嫁接到源码里去,定时器的设置延用了odrive设置规则,即3500为峰值,即48KHz,中心对齐3模式,即pwm的频率为24KHz,RCR=1,即TRGO事件和update中断即为24KHz,与odrive有点区别的是通道x的模式为pwm2,但极性我设置成了低有效。今天是高兴的一天,经过本主的移植,开环控制成功了,电机也转起来,但由于调试不成功几次,以为自己过于保护,给的voltage_limit值过大,不一回电机冒烟了。之前有一个微秒级有个过界处理,也屏蔽了。
2022-11-13 11:31:08
522
原创 移植 simpleFoc笔记(二)
今天 基本将drv8301及大部分代码添加到了工程里,接下来就是将timer,pwm,电流采样,有感采集接入 simpleFoc,即可以调试起来。继上篇之后,大概看了下源码,今天移植的主要任务是commander,方便以后串口发指令调试电机参数。由于odrive主板有UART4可用,目前使用它打印信息,并接收指令,后续再将usb虚拟串口专门用来接收指令。并且开了一个基本定时器6,84MHz 分频为1MHz 周期为50000个,即最大周期50ms。保持commander 接收数据和解析指令。
2022-11-10 18:31:50
628
原创 如何解析bmp文件在液晶屏上显示
以前做嵌入式开发时,在裸奔的单片机、arm7或stm32上,显示图片时方式往是将一张图片通过ImagetoLcd等软件,转换成数据烧录在flash中,显示时调出数据,刷到屏上。但对于后来移植了文件系统,这种做法在维护更换图片时就不直观了,今天主要讲讲在有文件系统后,如何调出bmp图片解析显示液晶屏上。由于手头上没有硬件,就用vs或qt的控件作为一个显示单元,方法:不直接调用系统的接口函数显示图...
2019-05-21 14:24:51
1256
原创 Bootstrap-v1.14代码分析摘要
Bootstrap-v1.14代码分析摘要crt0_gnu.S.section start 定义start代码段 .text 定义为text段,text段保存代码,是只读和可执行的,后面那些指令都属于.text段。 #include "include/part.h" 包含头文件 .globl reset 声明 res...
2018-12-07 16:04:25
264
原创 window下交叉编译arm平台程序,方便驱动调试
1、https://www.veryarm.com/arm-none-linux-gnueabi-gcc 网上下载window安装版:arm-2007q1-21-arm-none-linux-gnueabi.exe2、https://sourceforge.net/projects/mintoolchain/ 网上下载min-toolchain_1.2.exe3、将以上两个软件安...
2018-12-06 16:04:06
3384
原创 at91sam9g45板上移植mcp2515网络型驱动笔记
本人在at91sam9g45板应用mcp2515字符型驱动,只能阻塞访问,感觉不太爽,于是花了两天时间移植了下网络型驱动,以便于socket 编程。在这一过程中碰到的问题记录如下:一、移植mcp2515x代码,可以在linux2.6.34版本以上找得到,但往2.6.30里移植时,需要根据编译错误,进行调整和切入。并配置Kconfig和Makefile,由于当时错误情况当时未记录,暂且不表移...
2018-10-25 16:03:28
508
原创 quidway 5700 52c-ei配置 操作
1、清除之前配置reset saved-configuration 选y然后reboot 选n重启2、显示当前配置display cur3、进入配置sys4、划分网段(将36个口划分三个网段192.168.3.0 \192.168.4.0 \192.168.5.0)vlan 3vlan 4vlan 55、配
2016-12-07 07:52:19
726
原创 嵌入式QT configure
./configure -opensource -prefix /usr/local/Trolltech/qt-4.8.6-arm -embedded arm -xplatform qws/linux-arm-g++ -qt-mouse-tslib -I /usr/local/tslib/include -L /usr/local/tslib/lib -nomake demos -nomake e
2016-08-26 12:52:57
480
原创 USB hid通信 间隔报告的困扰
平台:stm32 win7 winxp代码:移植的是keil下例程更改。需求:为了免驱,兼容win7 xp .没有用cdc 模式。而是采用 hid通讯。但是实际中有一个问题就是间隔报告。目前的策略是无协议通讯时,间隔报告无用数据。。用协议通讯时,报告实际协议内容。如果间隔报告太频繁,则又太占usb带宽,如果间隔报告间隔太久,导致协议回应太慢,从而影响通讯速率。如果下载大文
2016-04-15 10:00:26
2062
1
原创 centos5.6升级gcc4.8.2
1、下载gcc-4.8.2.tar.bz22、tar -jxvf gcc-4.8.2.tar.bz23、cd gcc-4.8.24、运行:./contrib/download_prerequisites。5、mkdir gcc-build-4.8.26、cd gcc-build-4.8.2../configure --enable-checking=release -e
2015-05-13 15:58:40
562
原创 ./sysdeps/x86_64/cacheinfo.c:325: undefined reference to `__cpuid'
找到相应目录的这个文件,并在文件前面添加如下代码://add by eric#if defined(__i386__) && defined(__PIC__)/* %ebx may be the PIC register. */#if __GNUC__ >= 3#define __cpuid(level, a, b, c, d) \ __asm__ ("xchg
2015-05-12 10:43:58
967
1
转载 IOCP模型与EPOLL模型的比较
一:IOCP和Epoll之间的异同。异:1:IOCP是WINDOWS系统下使用。Epoll是Linux系统下使用。2:IOCP是IO操作完毕之后,通过Get函数获得一个完成的事件通知。Epoll是当你希望进行一个IO操作时,向Epoll查询是否可读或者可写,若处于可读或可写状态后,Epoll会通过epoll_wait进行通知。3:IOCP封装了异步的消息事件的通知机制,同时封装
2015-05-03 21:03:32
340
原创 Linux下 svn + apache 实现
之前搭svn走的都是走svn协议的。在linux下实现还是比较容易和好用的。现在有一个新的需求。要实现https协议访问主要步骤,网上都有吧,大概是安装openssl httpd 和subversion了。这里不重点讲了。在此主要讲讲配置文件,留下记录,以方便以后查阅使用。其实这个过程还是三个重要的配置文件 /etc/httpd/conf.d/subversion.c
2015-05-01 13:29:55
649
转载 QT TcpServer模型搭建及实现
#ifndef TCPSERVER_H#define TCPSERVER_H//connection类#include #include #include #include #include class Connection:public QObject{ Q_OBJECTpublic: int m_nSocketID;//-1 indicate th
2015-04-15 16:24:33
588
原创 redmine wiki h1样式修改
h1{border-bottom: 1px solid #bbb;}. Redmine使用手册{{>toc}}redmine 是一个灵活的项目管理与缺陷跟踪工具. 它是基于 Ruby on Rails 框架建立的Web的应用程序, 页面符合Web 2.0特性, 同时又简单易用, 给项目管理和进度度量带来极大的好处.h2{border-bottom: 1px so
2014-06-06 19:25:10
1035
原创 centos安装oracle笔记
1、创建安装用户、组和目录1.1创建安装用户和组#groupadd oinstall //创建oinstall组#groupadd dba //创建dba组#useradd -g oinstall -G dba oracle //新建用户oracle,设定其主组为oinstall,副组为dba#id oracle //检查结果#p
2014-06-05 11:22:38
586
原创 uip 作为tcp sever 流程测试
之前用过uip作为udp使用,但将它作为server还没有涉及到,最近有个小项目中需要使用。以下针对它作为tcp_server流程测试和探索。struct timer periodic_timer, arp_timer; //struct uip_udp_conn myUdp_Con;//struct uip_udp_conn *pMyUpd_Con;//
2014-05-20 16:23:50
1756
原创 uip1.0 ping不通解决方案
最近移植uip1.0到stm32上,能udp收发数据,但是ping不通。感觉到很奇怪。以前移植的0.9都能ping通。由于通过抓包分析。发现icmp echo reply返回的校验值为incorrect。如下图:ping request ping reply:较uip 1.0和uip 0.9移植比较。在uip-conf.h里
2014-05-20 08:33:23
2750
转载 linux 下 oracle 开机启动
以root身份建立开机启动oracle服务的脚本:vi /etc/init.d/oracle,添加如下脚本:复制代码#!/bin/sh#chkconfig: 2345 20 80#description: Oracle dbstart / dbshut#以上两行为chkconfig所需ORA_HOME=/opt/oracle/11gORA_OWNER=oracl
2014-05-07 08:22:22
512
原创 AVR_BootLoader设计及实现
AVR_BootLoader实现笔记---作者:温业中 2008-8-19 在应用程序中执行下列语句,即可执行boot_loader代
2014-05-06 08:54:26
1243
原创 mysql操作笔记
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'root_pwd' WITH GRANT OPTION;FLUSH PRIVILEGES; 执行完后,可以在mysql数据库user表里看到新增了一条记录,并且远程可以访问了 revoke ALL PRIVILEGES ON *.* F
2014-05-06 08:20:47
418
原创 ftp服务器搭建
vi /etc/passwd找到ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 其中的 /var/ftp改成自己想要的目录,本人在/opt下建立了一个ftp目录,所以改成:ftp:x:14:50:FTP User:/opt/ftp:/sbin/nologin匿名登陆后,就要这个目录下了添加用户user
2014-05-06 08:19:46
735
原创 Redmine安装指南
1、前置条件你的机器上已经安装了 ruby , rake, rails 和 mysql数据库。卸载mysql1、查找以前是否装有mysql命令:rpm -qa|grep -i mysql可以看到mysql的两个包:mysql-4.1.12-3.RHEL4.1mysqlclient10-3.23.58-4.RHEL4.12、删除mysql删除命令:rpm
2014-05-06 08:18:35
936
原创 redmine邮件配置
vi ./config/configuration.ymldefault: # Outgoing emails configuration (see examples above) email_delivery: delivery_method: :smtp smtp_settings: address: mail.smart-card.c
2014-05-06 08:16:58
700
android socket编程
2014-05-14
at91sam9263学习笔记 深入学习Bootstrap uboot 到linux MMU
2013-12-06
libjpeg移植
2013-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人