Q&A-GD32E230在ADC多通道采集中使用DMA出现数据错位问题
Question:使用GD32E230C8进行多通道数据采集,根据官方给的例子进行修改的代码运行后出现DMA数据错位问题。
Answer:经过测试,发现是使用了校准功能 adc_calibration_enable() 时候就会出现错位,经过测试提供如下两种方法:
(1)不使用校准功能;
(2)需要在配置ADC时候先使用adc_deinit() 或 adc_disable() 复位下再开始配置,这样开启校准功能也没有问题;
Q&A-keil c51编译程序错误-Invalid Base Address
Question:在keil中编写51程序,出现如下编译错误:Invalid Base Address
Answer:这个错误是定义位操作地址时基地址不合法,有效的可以进行位寻址的基地址必须是最后一位为0或8,比如:sfr P1 = 0x90;sbit P1_0 = P1^0;这个定义就是合法的;
sfr P4 = 0xD1;sbit P4_0 = P4^0;这个定义就是不合法的,因为0XD1的sfr地址最低位不是0也不是8,不能位寻址。
Q&A-cadence nc-sim仿真SDF问题-Failed attempt to annotate to non-existent path
Question:使用cadence ncsim工具做数字后仿真,SDF反标失败,此处SDF文件有genus综合工具的write_sdf命令生成,但是使用questa sim仿真是成功的。
Answer:出现问题是由于SDF文件格式问题,解决方法是genus的SDF生成命令改为如下:write_sdf -edges check_edge > xx.sdf即添加 edges参数,即可成功。
Q&A-Qt编译错误-undefined reference to vtable for xxx
Question:Qt编译时候出现如下错误提示:undefined reference to vtable for xxx
Answer:出现此错误大概率是在类定义的h文件使用了Q_OBJECT宏后出现的,尝试以下方式解决:1)在类实现cpp文件底部添加 #include “moc_className.cpp” ;2)将工程先清除一次,然后QtCreator中选择执行qmake,再进行重新编译;
Q&A-rust slint ui编译错误-ld.exe- Error- export ordinal too large
Question:编译rust slint-ui库时候,编译到slint-macros库时候出现link错误如下:Error: export ordinal too large: 100286collect2.exe: error: ld returned 1 exit status
Answer:此错误是rust toolchain为GNU版本时候出现的,msvc版本没有出现,该问题在slint官方仓库issue有记录:https://github.com/slint-ui/slint/issues/764,解决方法如下:在项目的Cargo.toml文件中添加如下内容:
[profile.dev.build-override]opt-level = 2
Q&A-虚拟机Ubuntu中串口设备接入后没有显示串口号 ttyUSB0
Question:虚拟机中安装了Ubuntu22版本,连接了一个USB转串口的CH340设备后,在设备列表中看不到 /dev/ttyUSB0 设备
Answer:查找资料通过命令:sudo dmesg|grep brltty,显示信息为:usb 1-1: usbfs: interface 0 claimed by ch341 while ‘brltty’ sets config #1:golang连接数据库postgresql出错sql: unknown driver确定是 brltty 盲文显示程序占用问题,这个基本用不到,因此通过如下命令删除即可:sudo apt remove brltty再次重新插拔设备后有显示ttyUSB0设备了。
Q&A-VMware虚拟机安装的Ubuntu下esptool.py烧写ESP32串口自动下载功能出问题
Question:在虚拟机VMware中安装的Ubuntu22,然后使用ESP-IDF进行编程,但是使用esptool的串口自动下载功能出问题,提示无法进行下载模式,有时候按下rst按键才可以下载
Answer:参考这个资料:https://github.com/espressif/esptool/issues/323;解决方法:在VMware虚拟机中点击 【设置】-> 【硬件】->【USB控制器】 -> 【USB兼容性】将选项USB2更换为USB3即可;
Q&A-centos7 虚拟机Vmware共享文件夹不出现文件
Question:在VMware虚拟机中安装好centos7后,共享文件夹设置好了,但是在/mnt/hgfs下没有文件夹出现。
Answer:先确认已经安装好VMware-tools,命令:vmware-hgfsclient,再设置好共享目录,重启后设置如下命令:– 切换到root:su– 执行该命令:/usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other– 现在到共享目录:cd /mnt/hgfs– 执行ls后可以看到共享文件了
Q&A-rust问题-Blocking waiting for file lock on package cache
Question:在编写rust程序时候,执行cargo build后显示Blocking waiting for file lock on package cache,一直等待。
Answer:在C盘用户文件夹下,即C:\用户\用户名.cargo.package-cache 删除该文件后再次执行cargo build
Q&A-vivado FPGA错误-port connections cannot be mixed ordered and named
Question:在vivado中,实例化模块端口列表出现错误:port connections cannot be mixed ordered and named 。
Answer:出现此错误很可能是在端口列表最后一个端口的括号后面多加了一个逗号,去掉该逗号。