- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 MATLAB C++语言编写MEX函数示例:求解本源根
作为一种提升运行效率的手段,MATLAB的MEX函数最初支持C语言编写,从2018a才开始支持基于C++11的“现代”C++编写MEX,并实现更多现代特性(尤其是程序安全性方面)。可以看到,MATLAB通过引用的容器向MEX函数(对象)传入传出数据,我们在编写c++代码的时候,只要能从。本源根在密码学上非常有用,而且显而易见,对于大质数,搜索出全部本源根是个需要穷举的过程,这种穷举就非常适合通过C/C++编程来优化。接收输入数据的引用,然后将第一个数据取出,就是我们算法的输入,即待求本源根的质数。
2024-07-29 21:38:07 996
原创 GD32移植FreeRTOS+CLI过程记录
之前我只在STM32F0上基于HAL库和CubeMX移植FreeRTOS,但最近发现国产化替代热潮正盛,许多项目都有国产化器件指标,而且国产单片机确实比意法的便宜,所以也买了块兆易创新的GD32F303开发板,试一试它的优劣。虽然GD32F系列基本都可以和同名的ST单片机pin-to-pin替换,程序也通用,但GD自己也开发了一套库函数,基于GD的库函数开发有利于熟悉GD设计的逻辑,对于未来学习GD的RISC-V单片机也有帮助。另外,不用ST的HAL库,也能降低代码量。
2024-01-27 21:04:45 2971
原创 CMSIS/FreeRTOS中队列(Queue)的使用
在有流式数据处理的嵌入式系统中,队列(Queue)是几乎必然被使用的工具,但大多数开发板提供的FreeRTOS例程是不包含队列的,要使用还要自己研究。这次我的样例把串口收到的数据按字节塞入队列,再让另一个线程处理,是一种相对画蛇添足的做法,这么做主要目的是说明队列如何使用。队列更适合用来处理ADC/DAC采样数据、通信模块固定大小的数据包等。这次我仍是使用自制的STM32F0模块实验,与上次一样,我们还是用STM32CubeMX来生成初始代码,在FreeRTOS中添加队列:这里,我设队列的每个项目为ui
2022-01-28 18:15:20 9605
原创 TI-RTOS Driverlib驱动I2C外设实例:CC3200读写PCA9539和BMP180
四年前圣诞节,我抽奖抽中一块CC3200的开发板,并且写了一篇博客,然后就搁置了…主要原因是,虽然这是一块外设齐全的板子,通过底板扩展配了温湿度计、气压计、光强传感器、段式液晶甚至五向开关,但是却只给了核心板的例程,于是外设板就一直无法上手。最近意外的有了一点时间,仔细看了看底板的原理图,发现扩展板所有的外设,都是用I2C总线控制的。I2C也是我的“老朋友”了,之前我用STM8的时候,就调过硬件I2C,并且被其复杂的中断机制困扰不已。事实上,很多时候,使用GPIO模拟I2C,可能都比用单片机的硬件I2C外
2021-12-26 16:38:37 3894
原创 梅登黑德定位Python代码
这个周末做了一点不那么难的事情,用Python计算一个经纬度的梅登黑德(Maidenhead)定位代码,也提供根据梅登黑德代码计算所在区域中心经纬度的函数。梅登黑德定位系统是业余无线电最常用的定位系统,通常由两个字母-两个数字-再两个字母表示,这样六个字符可以定位到5’’(经度)×2.5’’(纬度)的网格上,便于通过摩尔斯电码拍发。(截图自http://f5len.org/tools/locator/)下面的程序提供了所有常用的函数,给出计算我所在的位置的例子(main函数)。# Longitude
2021-08-29 21:29:58 1793
原创 基于PyQt5的轻量级UDP调试器
首先,大嘘,要做轻量,出门左转tkinter,用pyqt就不轻了!!!然后,老规矩,github链接,欢迎大家参考:UDP_Recv_Tool今天是理论上的休息日,不想干活了,所以整一个UDP调试器出来:因为偷懒,也因为我们还是做嵌入式为主,要嵌入式系统大量上传数据,UDP就足够了,所以只做了UDP,可以把接收到的数据直接存到指定文件里,还可以适当从"Send Text"编写数据下发UDP包进行调试。这里需要说明,PyQt5提供QThread的多线程,但需要另外写一个类,为了访问主窗口中的控件,还
2021-08-15 22:40:03 417
原创 基于Northwest Logic控制器的SDR SDRAM全页(full page)读写
这次来补之前的坑,SDRAM全页读写才能达到大多数需要外挂SDRAM应用的需求NWlogic的文档说明,在全页读写时,控制器不会自动进行refresh,我们要自己安排。为此,我设计刷新的状态机和读写的状态机分离。刷新前检测是否在读写,读写前则检测是否在刷新。读取结束用PRECHARGE指令来通知控制器和SDRAM。考虑我使用的SDRAM要求的刷新速度是8192/64ms,在使用100MHz时钟时,最多间隔781拍就必须刷新一次。再考虑一次读写256words,因为读写延迟可能多造成10+拍的延迟,故我设
2021-01-14 12:52:59 426
原创 从频域计算信号循环谱
循环谱的计算最大的特点就是复杂,在知网上,嵌入式系统上的快速循环谱计算的文章也非常多。不过在理论分析阶段,只要能加快仿真计算就够了。标准的直接从时域信号计算循环自相关的公式为:Rxα(τ)=limΔt→∞2Δt∫−Δt/2Δt/2x(t+τ/2)x∗(t−τ/2)e−j2παtdtR_{x}^{\alpha}(\tau)=\lim_{\Delta{t}\rightarrow\infty}\frac{2}{\Delta{t}}\int_{-\Delta{t}/2}^{\Delta{t}/2}x(t+
2020-11-03 16:27:41 7652 14
原创 基于Northwest Logic控制器的SDR SDRAM读写实验
虽然现在DDR4都已经大行其道,但在很多同学FPGA入门的时候还是会使用最古老的SDR SDRAM。这确实足以应付很多对读取速度没有过高要求的小项目,而且依然有供货渠道(大家不要瞧不起拆机件:-)虽然早就有很多直接写SDRAM驱动的资料,但用专业公司的IP核通常更稳健,其中Northwest Logic编写的控制器被最广泛认可,通常买板子只要板载SDRAM,卖家都会附上这个核的代码。但它仍然只是接口,需要设置合适的参数,并按照合理的时序才能正常运行。最近我玩了一下这个接口,并通过Signal Tap 观察
2020-08-28 09:44:12 495
原创 基于python的tkinter和pyserial的简易串口调试器——实现与详解
太长不看版:本文程序github链接串口自环实验图(发送Aloha Oe):契机最近偶然碰到一个项目,需要写一个PC端的单片机上位机通信和演示程序。项目原来的工程师们是精于单片机、FPGA和模拟电路的高手,却对GUI束手无策。辣鸡博主也一样,除了早已忘光的MFC和并不实用的javafx,也没做更多GUI方面的工作了。然而当时我考试紧张,正和Markov Chain做殊死搏斗,也就没有参加。...
2018-11-25 17:16:21 11136 8
原创 STM8L051的硬件I2C调试
I2C是现代一种极为常见的低速外设通信协议,比起SPI或者UART,它最大的优势应该就是节省芯片管脚了:理论上只要地址够用,多少外设挂I2C总线上都没问题,只占两个管脚。但也因此,I2C的协议就相对复杂一些,以面对多个外设。同时,过多的外设也使得通信速率难以提升,一般只在100kbps或以下。本文不专门介绍I2C的时序和协议,而介绍我在调试STM8L051的硬件I2C的过程以及遇到的问题,和大家分...
2018-08-23 01:31:18 6374 1
原创 关于HML要玩物联网这件事 之 CC3200 TCP Client
假装是个引言去年TI难得发了次大福利,圣诞节派送CC3200开发板。本辣鸡博主抢得早,加上没落C9.edu.cn 邮箱加持,抽奖居然抽中了。TI不论是赞助竞赛还是送板子,目的都很明确,就是想推广自己的东西。你们看,自从TI垄断电赛之后,全国高校都在设计TM4C的开发板和应用软件了吧!(参加了最后一届瑞萨杯的博主发出了银铃般的笑声^_^) (这就是博主抽中的CC3200开发板) ...
2018-03-16 17:19:07 954
原创 JavaFX初探与MediaPlayer(5)
JavaFX MediaPlayer的常用方法过了一个月,我终于又要更博客啦~ ~ ~ (请大家原谅这个重度拖延症患者~ ~ ~) 今天完结撒花啦~ ~ ~ 为了方便那些嫌太长不看的,我留下github: MediaPlayer_JavaFX - A simple Media Player on JavaFX 上次我们放出了早就被奶爆的京紫,但一个视频播放器显然不能这么简单。我们通常要
2018-02-15 17:32:47 5475 11
原创 JavaFX初探与MediaPlayer(4)
终于要放视频了!!!从第一 次博客我就说要放视频,然后一直拖,一直拖。。。然后考试加磕盐加旅游。。。结果年都过了我还没把视频放出来。。。 (拖延症害死人啊!!!!)今天我们真的来播放视频。JavaFX提供Media类用来表示多媒体(音视频),用MediaPlayer类播放音视频,再用一个MediaView类显示视频。它们都在javafx.scene.media中。使用时大致关系如下: Media
2018-01-15 10:27:06 8061 7
原创 JavaFX初探与MediaPlayer(3)
ImageView 查看图像和动态调整对象位置大小今天我们开始向多媒体迈出一大步:查看图像。JavaFX提供了用于查看图像的类 javafx.scene.image.Image 和 javafx.scene.image.ImageView。javafx设计的初衷,就是要方便构建互联网应用,可以想见,javafx的图像类,也肯定能(而且就是为了)查看互联网的图像的。JavaFX的文档中,关于Image
2017-12-15 15:34:07 2049
原创 JavaFX初探与MediaPlayer(2)
JavaFX的Button、事件和lambda表达式上次我在gakki女神的盛世美颜推动下首开博客之后,滚去画了两天电路板(虽然并不可能制出来),然后就想不到接下来该写什么了。我的目标是写到MediaPlayer完结,但HelloWorld之后才知路漫漫。既然JavaFX是GUI,GUI是UI,就肯定要和用户交互。那正常程序员人想到的肯定都是按钮Button了。Button是图形化的,但又通常只完成
2017-12-05 22:21:30 1066
sdram_nwlogic.zip
2020-08-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人