- 博客(26)
- 资源 (6)
- 收藏
- 关注
原创 STM32G4 Math Operation Benchmark Test
上述表格中Q15的测试数据为把相乘的结果赋值给int16_t,如果改为把结果赋值给int32_t,则所耗时间与Q31一致,更少。似乎同样的代码重新编译以后测试结果又不一样。
2024-04-09 15:42:00
672
原创 STM32+Matlab/Simulink模型设计和代码调试
最新的Simulink/STM32工作流已经摒弃了以前通过CubeMX生成主要框架,然后把Matlab的代码加入到项目的方式,新的工作流虽然还是要基于CubeMX,但CubeMX基于上仅仅是生成外设代码而已,后续的工程构建是基于GCC的,可以做到编译、生成、下载一键完成。生成模型代码的时候要先前面的Monitor and tune,编译的代码才有调试信息,如果选择的是Build/Deploy & Start的话,编译选项不含调试,生成的elf不能调试。没什么特别的注意事项,略过。OK,现在可以调试了!
2023-09-03 19:20:13
1259
1
原创 巴特沃斯一阶低通滤波器参数推导
如果将归一化频率转换成Hz,则将归一化频率乘以采样频率的一半。把一个传递函数从s域变换到z域时,如果变换方法是有差的(一般都是有差的,因为损失了时间分辨率),则变换前后的滤波特性(包括截止频率)会发生变化,此处以双线性变换为例。信号处理工具箱中经常使用的频率是Nyquist频率,它被定义为采样频率的一半,在滤波器的结束选择和设计当中的截止频率均使用Nyquist频率进行归一化处理。采样率的一半是最高频率,认为是1,那么真实频率和最高频率的比值就是归一化频率!越接近,频率越高,差别越大。的函数关系是这样的(
2023-08-01 09:29:12
2644
原创 Qt Creator 调试 Simulink S-Function
说明并演示了如何用Qt Creator与 Simulink S-Function联合调试C代码
2022-10-07 19:53:03
1314
3
原创 Redmine 安装及运维
文章目录前言1. 安装1.1 选择语言1.2 欢迎页面1.3 选择组件1.4 选择安装路径1.5 创建管理员账户1.6 选择端口号1.7 选择配置语言1.8 配置邮件通知1.9 不需要云主机1.10 开始安装1.11 安装完成1.12 修改邮件通知服务2. 配置系统2.1 配置系统2.1.1 \<一般\>选项卡2.1.2 \<认证\>选项卡2.1.3 \<项目\>选项卡2.1.4 \<文件\>选项卡2.1.5 \<邮件通知\>选项卡2.1.6 \&
2022-03-20 17:02:59
7022
1
原创 新手关于Verilog测试脚本中延时的用法心得
1. #100 这种语句除非放到repeat或者for里面,否则只会执行一次,就算放在always里面也一样,这个让我纠结了好久2. #100 这种语句都是阻塞的,不管后面的操作用的是 ‘=’ 还是 ‘<=', 也就是说跟延时后面的语句形式无关,一定是上个延时结束了才会执行下一条语句3. 要产生复杂的相互配合的循环时序,就用延时+repeat...
2019-07-19 12:32:32
1793
原创 nRF SDK Step By Step
概述单板嵌入式软件到底是用驱动库还是直接操作寄存器,这是一个永恒的话题,就像豆花到底应该放盐还是放糖一样。刚接触nRF SDK的我也一样在纠结这个问题:直接操作寄存器吧,简单,非常简单。但是一方面程序结构和移植性上肯定好不了,如果想做好一点,干嘛不用别人做好的?人家已经写了几百M的代码放在那里(这得是多少人的心血啊!尤其是嵌入式领域!),干嘛要重复造车轮子?用库吧,你得先把人家的库看明白了...
2019-01-18 23:09:32
260
原创 Win10+Qt5 编译 qextserialport总结
虽然Qt5官方添加了QSerialPort类,但据说这个类却不支持通过超时来分包,这对嵌入式用户而言有啥用?不得已还得用Qextserialport。网上好多文章都把使用这个东东说得跟鼻子上的饭似的,一步,两步,三步,搞定!我却要来讲讲使用qextserialport的苦逼过程:下载源码后,看到有个Example文件夹,Great!直接用QtCreator打开里面的Enumerator例程...
2019-01-18 12:15:58
4908
原创 VBA中被Find的对象只能是值,不能是引用
ABCDEF1XY=B1=C1Y2 如上表格,D1和E1中内容为公式表达式如果用Range("B1:C1").Find("F1")就可以返回C1,如果用Range("D1:E1").Find("F1")则返回Nothing有木有好办法?
2017-10-19 11:21:55
632
原创 C++中的引用本质上是指针
在某实践中想通过通信直接读取内存的值查看某个变量(一个引用变量),地址的值是通过map文件解析出来的,读出来以后发现数据值不对,而且没有变化,然后对比发现map文件解析出来的地址和IDE中的地址不一致,然后再查看引用变量的值,发现该变量的值与所引用的变量的地址相等这说明本质上引用是作为指针来处理的,引入引用可能只是为了语义更清晰,书写更方便
2017-07-19 11:36:59
774
原创 Android 新建Activity并运行的步骤
1. 新建一个Layout,并设计布局2.新建一个类,继承一种Activity类3.在新类的OnCreate函数中加入 setContentView(R.layout.activity_main);其中的activity_main 改成新Layout的名字过程中遇到一个错误,Console中提示:ERROR: In MenuView, unable to find at
2017-07-16 16:44:10
1039
原创 Win7 Python guiqwt 开发环境搭建
1. 下载Python3.4 并安装:https://www.python.org/downloads/windows/2. 从以下地址下载合适版本的Pyqt5.6并安装,因为从5.6开始不再支持Python3.4http://sourceforge.mirrorservice.org/p/py/pyqt/PyQt5/PyQt-5.5/3. 打开命令行,输入命令升级pipp
2017-02-27 08:50:25
1348
原创 批处理 查找某类型文件并处理
查找某指定类型文件:for %i in (*.*) do echo %i如果要从文件名中去掉后缀,则用:for %i in (*.*) do echo %~ni
2016-12-22 12:33:46
1901
1
原创 几种建模工具的比较
一家之言,如有异议或者错误请忽略Matlab优点面向算法,可以运行和仿真,能看到每个变量随时间变化的曲线,因而可以进行早期验证各种现成的组件各种现成的模板用于生成不同平台的代码缺点不面向对象,没有类的概念,也不能使用时序图,活动图等好像只能生成C/C++代码可以引用外部代码,但是不能增量式维护,只能改模型重新生成贵!Matlab的强项在于实现功能,而不是架构设计StartUML优点
2016-09-29 11:52:46
1154
原创 C2000中ePWM模块间同步延时的问题
在C2000 DSP的ePWM模块与EV模块有很大的差别,EV模块各路PWM共用一个时基,而ePWM模块则有各自的时基,通过同步信号来同步。但同步是有时间开销的:The delay from internal master module to slave modules is given by:– if ( TBCLK = EPWMCLK): 2 x EPWMCLK– if (
2016-09-21 12:22:55
3363
原创 C/C++预处理表达式中可接受的内容
因为C++里推荐用枚举来代替宏定义,因而在C++代码中都很少使用宏定义。但是现在碰到一个需求,就是希望在编译的时候知道两个常数是否一致(比如两个版本号),第一反应就是用#if,但是结果发现#if根本不能接受enum, 甚至不能接受const://============CLASS ENUM==========class A { enum {
2016-08-12 10:45:01
1072
原创 Python2 与 Python3在串口编程中的区别
Python2在组织数据的时候可以直接用chr把字节内容添加到字符串里进行发送,而在Python3中chr返回的是Unicode,所以超过ASCII能表示的范围时chr返回的将会是两个字节从而使数据被破坏,因而在Python3中不能再用字符串来组织数据,而应该用bytearray来保存数据。示例代码:Python2:data = ''data = data + ch
2016-07-08 16:27:56
1834
gcc-arm-none-eabi-5_4-2016q3-20160926-win32.exe
2018-04-19
SourceInsight base project including macro files
2017-01-05
GB 19271[1].3-2005-T 雷电电磁脉冲的防护-第3部分对浪涌保护器的要求
2016-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人