自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

whik1194的博客

分享MCU、ARM、RISC-V、FPGA等技术文章,博客:www.wangchaochao.top,公众号:mcu149

原创 SmartFusion从FPGA到ARM系列教程

前言本系列教程,将会以Microsemi SmartFusion一代芯片A2F200M3F为例,简单介绍片上ARM Cortex-M3 硬核 MCU 基本外设的使用,及其与FPGA逻辑模块进行交互的示例。在学习片上硬核ARM Cortex-M3 MCU的开发之前,要先熟悉Microsemi Libero SoC开发环境的使用,可以参考:Microsemi Libero SoC系列教程关于Microsemi SmartFusion混合型FPGA的介绍,可以参考:Microsemi SmartFusio.

2020-07-03 14:25:10 78

原创 Microsemi Libero系列教程(全网首发)

关于Libero IDE和Libero SoCLibero分为Libero IDE和Libero SoC,Libero IDE最新版本是v9.2 SP3(2016年4月4日)已经不再更新维护了,而Libero SoC是Libero IDE的升级版,官方推荐的开发工具,文中的Libero指的是Libero SoC。Libero SoCLibero® SoC是Microsemi(美高森美)官方...

2019-11-04 17:44:22 2352 5

原创 SmartFusion从FPGA到ARM(五)——如何获取固件库和使用例程

文章目录0.前言1.下载固件库cpz文件2.获取固件库方法1:Libero中生成例程方法2:cpz解压获取3.所有的固件库下载0.前言在使用SmartFusion系列(一代和二代)的片上MCU时,如果想使用某个外设,如SPI、IIC、TIMER等,需要获取对应的官方驱动库,例如mss_spi的使用需要mss_spi.c和mss_spi.h这两个文件,这两个库文件如何获取呢?这里提供两种方式,一种是下载cpz文件之后,在Libero中安装,然后自动生成使用例程,在例程工程中的drivers文件夹中就有对应

2020-07-22 10:25:01 78

原创 二进制和格雷码之间的转换

文章目录格雷码特点二进制和格雷码对照表二进制转格雷码HDL实现格雷码转二进制HDL实现参考资料格雷码特点格雷码属于可靠性编码,是一种错误最小化的编码方式。因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。由于这种编码相邻的两个码组之间只有一位不同,因而在用于方向的转角位移量-数字量的

2020-07-20 15:20:01 64

原创 RAM、FIFO、单口RAM、真双口RAM、伪双口RAM的区别

文章目录1.RAM和FIFO2.单口RAM和双口RAM3.真双口RAM和伪双口RAM1.RAM和FIFORAM有地址线和数据线,可通过地址线对存储单元进行寻址,读取是随机的。FIFO为先进新出,没有地址线,无法对存储单元进行寻址。FIFO的读写可同时进行,一个端口只读,一个端口只写2.单口RAM和双口RAM单口和双口指的是地址线数据线的组数。单口RAM只有一组数据线和地址线,读写不能同时进行双口RAM有两组地址线和数据线,读写可以同时进行3.真双口RAM和伪双口RAM伪双口RAM

2020-07-16 16:28:30 143

原创 FPGA单比特信号跨时钟域处理
原力计划

文章目录1.慢速时钟域同步到快速时钟域2.快速时钟域同步到慢速时钟域详细的原理解释: 单比特信号跨时钟域问题详解1.慢速时钟域同步到快速时钟域输入:singal_in,来自10MHz慢速时钟域的单比特信号输出:singal_out,输出100MHz快速时钟域的单比特信号10MHz = 100ns100MHz = 10ns因为慢速时钟域的最短信号长度为1个时钟时钟周期即:100ns,大于快速时钟域的时钟周期10ns,所以只需要打3拍即可:/* 从慢速时钟域同步到快速时钟域 */mod

2020-07-16 10:39:55 127

原创 SmartFusion从FPGA到ARM(四)——MSS_TIMER定时器的使用
原力计划

文章目录1.定时器资源简介2.MSS_TIMER库函数简介3.简单的周期性中断4.自定义产生波形5.64位定时器的使用6.单次中断模式系列教程:SmartFusion从FPGA到ARM系列教程1.定时器资源简介SmartFusion片上MUC有两个32位的定时器,可以分别独立使用,也可以两个合并成一个64位定时器来使用。驱动库只有一个mss_timer.h文件,库函数也比较简单。之前几篇文章,我们介绍了MSS_GPIO的使用和SysTick定时器的使用,使用SysTick内核定时器可以精确控制延时,

2020-07-03 21:43:53 116

原创 SmartFusion从FPGA到ARM(三)——SysTick延时函数和GPIO位带操作
原力计划

文章目录1.SysTick定时器简介2.精确延时函数的实现3.GPIO位带操作4.实际使用1.SysTick定时器简介SysTick定时器是存在于ARM Cortex-M内核的一个滴答定时器,只要是ARM Cortex-M0/M3/M4/M7内核的MCU都包含这个定时器。它是一个24位的递减定时器,当计数到 0 时,将从RELOAD 寄存器中自动重装载定时初值,开始新一轮计数。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,由于和MCU外设无关,所以代码的移植,在不同厂家的Corte

2020-07-03 16:48:21 64

原创 SmartFusion从FPGA到ARM(二)——MSS_GPIO外部中断和输入
原力计划

文章目录前言预期效果0.MSS_GPIO相关的函数1.MSS_GPIO模式配置2.GPIO检测和控制实现3.FPGA工程编译和运行前言关于片上MCU基本外设的使用,可以查看对应的头文件,里面有非常详细的使用说明。在嵌入式开发中,一个GPIO通常有输入,输出,外部中断和复用功能。但是对于SmartFusion系列FPGA内部的MCU来说,GPIO只有输入输出和外部中断功能,并没有复用功能。上一篇文章,介绍了片上MSS,即ARM MCU的配置,并使用MCU的GPIO外设驱动了LED,本篇文章介绍MSS_G

2020-07-03 16:46:22 110

原创 SmartFusion从FPGA到ARM(一)——MSS_GPIO点灯

文章目录前言GPIO点灯前言GPIO点灯

2020-07-02 10:47:09 181

原创 Microsemi Libero系列教程(六)——Identify片上逻辑分析仪的使用
原力计划

文章目录FPGA如何进行在线调试关于Microsemi片上逻辑分析仪FPGA片上逻辑分析仪原理预期效果0.准备一个创建好的Libero工程1.新建identify工程,并添加想要监测的信号2.管脚分配,编译下载3.设置触发类型4.IICE逻辑分析仪核资源占用系列教程:Microsemi Libero系列教程FPGA如何进行在线调试对于嵌入式系统来说,如单片机,进行硬件级程序调试时,通常采用的是JLink/ST-Link调试器,在线调试的方式来获取程序实时运行的状态,可以观察程序运行流程、各种变量的值

2020-07-01 23:13:32 263

原创 Microsemi Libero使用技巧9——关于FlashPro下载器

文章目录FlashPro 4 管脚定义FlashPro 5 管脚定义JTAG时序要求系列教程:Microsemi Libero系列教程详细的使用文档位于安装目录下:\Microsemi\Libero_SoC_v11.8\Designer\doc\flashpro_ug.pdf\Microsemi\Libero_SoC_v11.8\Designer\doc\flashpro_express_ug.pdfFlashPro 4 管脚定义管脚示意图:管脚定义:FlashPro 5 管脚定义

2020-07-01 21:41:26 217

原创 关于SPI Flash那些你不知道的事儿
原力计划

文章目录和EPROM的区别块、扇区、页傻傻分不清地址范围常用指令以华邦W25Q128为例,详解SPI Flash的特点,读写注意事项,和地址范围等。和EPROM的区别以AT24C02 EPROM和W25Q128 SPI Flash为例。EPROM通常采用是IIC串行总线,低速,单双工,通信速率一般是百KHz。而SPI Flash是采用的SPI总线,高速,全双工,通讯速率一般是百MHz。SPI Flash属于Flash ROM闪存,相比于EPROM,读写速度更快。EPROM通常用于存储不频繁读取的

2020-06-25 14:11:34 475

原创 UNIX时间戳和北京时间的相互转换
原力计划

文章目录什么是时间戳头文件time.h介绍UNIX时间戳转北京时间北京时间转UNIX时间戳写成函数和调用示例什么是时间戳准确的说,应该是unix时间戳,是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。在很多的数据中,更新时间并不是一个字符串,而是一个长整形数据,如1593003485,表示是北京时间2020-06-24 20:58:05。注意这里直接换算出的是北京时间,如果用时

2020-06-24 22:10:44 244

原创 Keil环境下Jansson解析库的使用——基于STM32F103
原力计划

文章目录前言Jansson的安装示例1:纯键值对示例2:键的值是一个对象示例3:键的值是一个数组前言之前我曾经写过几个JSON解析库的使用方法:Qt平台下使用QJson解析和构建JSON字符串使用cJSON库解析JSON使用cJSON库构建JSON对于嵌入式开发,比较常用的就是cJSON解析库了,但是使用这个库对内存开销比较大,需要大量使用malloc和free进行动态内存分配和释放。对于单片机这种资源短缺的芯片来说,简直是太吃力了。使用STM32等单片机,不能解析多层JSON时,还需要调大

2020-06-20 17:15:20 217

原创 JLink-OB下载程序失败解决版本(附JFlash任意版本程序下载地址)

如果使用Jlink或JLink-OB进行程序下载时,提示如下下载失败信息:* JLink Info: Found SWD-DP with ID 0x2BA01477* JLink Info: AP-IDR: 0x24770011, Type: AHB-AP* JLink Info: AHB-AP ROM: 0xE00FF000 (Base addr. of first ROM table)* JLink Info: Found Cortex-M3 r2p1, Little endian.* JLi

2020-06-05 19:24:25 415

原创 [评测]灵动半导体MM32W3蓝牙开发板开箱报告
原力计划

文章目录前言开箱报告板载资源简介硬件电路分析配套资料文档关于灵动半导体资料下载前言前几天在面包板社区申请了一块灵动微电子的开发板—— eMiniBoard-MB021,感谢面包板社区和灵动半导体的支持!在此之前,我只听过灵动微电子的大名,没有使用过灵动的MCU产品,这次收到的是基于MM32W373蓝牙MCU的开发板,今天先来个开箱报告!开箱报告开发板是从南京发货,顺丰快递,到北京用时1天,不得不说顺丰就是快!其实我周二就收到板子了,但是不想应付了事,就趁着周末有时间,仔细写了这篇开箱报告。包装很简

2020-06-01 22:06:33 307

原创 Microsemi Libero使用技巧8——片上时钟和PLL的使用

系列教程:Microsemi Libero系列教程PLL输入源以 SmartFusion系列 A2F200M3F为例,片上有1个倍频器和3个分频器,倍频最大频率100MHz,分频最小750KHz,下面介绍PLL几种不同的输入源对应的含义:External IO:FPGA芯片的普通外部管脚Hardwired IO:只能是FPGA芯片的13、14、15脚,可以在PLL中指定某一个管脚Fabric:FPGA芯片的普通外部管脚或者内部逻辑模块的端口On-Chip RC Oscillator:片

2020-05-22 18:55:23 388

原创 如何从零写一个串口printf函数

对于STM32//硬件驱动#include "usart.h"#include "delay.h"//C库#include <stdarg.h>#include <string.h>#include <stdio.h>void MyUartPrintf(USART_TypeDef *USARTx, char *fmt,...){ unsigned char UsartPrintfBuf[296]; va_list ap; unsigned c

2020-05-22 15:47:32 126

原创 Microsemi SmartFusion系列FPGA简介
原力计划

文章目录前言微控制器系统(MSS)高性能FPGA可编程模拟前端(AFE)模拟计算引擎(ACE)特点简介设计流程器件选型前言Actel SmartFusion®系列智能型混合信号 FPGA 采用与 Fusion 混合信号 FPGA 相同的技术,并通过 Flash 半导体工艺集成了可编程的高性能模拟模块和硬化的 ARM® Cortex-M3 微控制器模块。SmartFusion 将这三种不相关的技...

2020-04-16 21:53:19 517

原创 Microsemi Libero系列教程(五)——ModelSim的使用
原力计划

文章目录关于ModelSim新建HDL源文件新建Testbench文件使用Modelim仿真系列教程:Microsemi Libero系列教程关于ModelSimMentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速...

2020-04-15 21:08:53 839

原创 Microsemi Libero使用技巧7——离线安装IP Core

文章目录离线下载IP Core离线安装IP Core系列教程:Microsemi Libero系列教程离线下载IP Core如果你的Libero软件不能联网自动获取最新版的IP Core,或者是某些IP Core搜索不到,可以尝试离线安装IP Core对应的CPZ文件。主要包括以下三种,离线下载链接:Firmware Corehttp://www.actel-ip.com/cwps/d...

2020-04-14 22:16:46 383 2

原创 Microsemi Libero系列教程(四)——PLL的使用

文章目录PLL是什么Libero中PLL的使用官方文档系列教程:Microsemi Libero系列教程PLL是什么PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时钟信号,使高频器件正常工作,如内存的存取资料等。PLL用于振荡器中的反馈技术。 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率...

2020-04-14 21:59:38 654

原创 Microsemi Libero系列教程(三)——MSS_IO的使用

文章目录部分管脚不能分配MSS_IO简介MSS_IO的使用系列教程:Microsemi Libero系列教程部分管脚不能分配如果你使用的是SmartFusion系列芯片,如A2F200M3F,当想把某些管脚分配到35-39,43-46,这9个管脚时,会发现无法分配,引脚下拉选项中根本没有这几个管脚可供选择!那么,如何将某个信号,分配到这些引脚上呢?MSS_IO简介官方介绍:The...

2020-04-14 21:33:19 486 2

原创 个人博客如何申请ICP备案
原力计划

文章目录前言一定要备案吗?备案前的准备域名备案资料备案服务号如何申请ICP备案备案成功之后总结关于博客的搭建参考资料推荐阅读前言前一段时间,博客域名在申请ICP备案,暂时不能访问。等待了半个月,终于收到备案成功的通知了,可以正常访问啦:www.wangchaochao.top,相对于公众号而言,个人博客自由,排版简洁,更适合PC端访问。本篇文章记录整个备案的过程,也了解一下网站备案的相关知识。...

2020-04-12 15:47:14 219

原创 我用STM32MP1做了个疫情监控平台4—功能完善界面重新设计
原力计划

文章目录前言界面展示新增功能API 接口说明多个接口数据的获取和解析FontAwesome字体图标库的使用代码下载系列教程前言之前我用STM32MP1和Qt实现了疫情监控平台,系列教程:我用STM32MP1做了个疫情监控平台1—交叉编译环境搭建我用STM32MP1做了个疫情监控平台2—Qt环境搭建我用STM32MP1做了个疫情监控平台3—疫情监控平台实现有幸被【STM32单片机】官...

2020-03-22 12:27:53 389

原创 Qt QML自定义相机照片保存路径

两个宏定义: property string captureSavePath: "F:/MYIR/MultimediaPlayer/capture/" property string captureSaveHead: "my_"获取当前时间:function getCurrentTime(){ var time = Qt.formatDateTime(new Dat...

2020-03-20 23:28:43 144

原创 Qt QML状态states的使用

效果状态绿灯黄灯红灯go亮灭灭wait亮亮灭stop灭灭亮鼠标点击之后,依次在这三个状态循环,类似状态机原理。代码import QtQuick 2.12import QtQuick.Window 2.2import QtQuick.Layouts 1.3Window { visible: true widt...

2020-03-13 11:42:07 232

原创 Qt QML自定义实现带图标的按钮

文章目录演示代码实现实际调用演示图标文本可自定义按下颜色可自定义进入颜色可自定义退出颜色可自定义可自定义鼠标左键按下功能可自定义鼠标右键按下功能代码实现MyIconButton.qml文件import QtQuick 2.0Rectangle { id: rec property alias img_src: icon.source prop...

2020-03-12 11:38:48 608

原创 Qt字体图标库fontawesome和pixeden使用示例

文章目录代码下载官网代码实现天气图标阵列显示代码下载官网pixeden官网:pixedenfontawesome官网:pixedenpixeden图标类型会多一些, 而且是分类的,每个类别都是一个文件,推荐。代码实现把图标库里的ttf字体文件添加到Qt工程里,通过以下代码实现图标显示。#include <QFontDatabase>void MainWin...

2020-03-09 15:16:47 188

原创 我用STM32MP1做了个疫情监控平台3—疫情监控平台实现

文章目录1.前言2.数据接口的获取3.Qt界面的实现3.1 JSON数据的解析3.2 获取本地IP地址4.在开发板上运行Qt程序5.使用无线模块联网6.代码下载1.前言之前我使用桌面版本Qt实现了肺炎疫情监控平台:基于Qt的新冠肺炎疫情数据实时监控平台(开源小项目)。既然Qt是跨平台的,正好手里有一块米尔科技的YA157C开发板,那么能不能在嵌入式平台实现一下呢?桌面Linux版本的运行效果...

2020-03-06 19:11:26 300

原创 我用STM32MP1做了个疫情监控平台2—Qt环境搭建

文章目录1.嵌入式Qt简介2.查看开发板Qt库的版本3.第一个嵌入式Qt程序——Hello World3.1 主机搭建嵌入式Qt环境3.2 编写Hello World源程序3.3 开发板运行Hello World4.Linux桌面版本Qt环境的搭建4.1 安装桌面版本的Qt44.2 配置Qt Creator的构建套件4.3 使用QtCreator涉及Hello World程序4.4 开发板运行He...

2020-03-06 14:47:48 255

原创 我用STM32MP1做了个疫情监控平台1—交叉编译环境搭建

文章目录1.开发板简介2.说明3.主机搭建交叉编译环境4.编译第一个ARM Linux程序——Hello World5.开发运行可执行文件6.scp文件传输7.ssh登录开发板1.开发板简介开发板型号:MYD-YA157C,512MB DDR3,4GB eMMC主控芯片型号:STM32MP157AAC光盘资料版本:MYD-YA157C-20191225.iso2.说明开发板配置:...

2020-03-06 09:40:45 369

原创 iMX287A基于嵌入式Qt的新冠肺炎疫情监控平台

文章目录1.前言2.数据接口的获取3.Qt界面的实现4.在5.在开发板上运行Qt程序6.最终效果7.代码下载1.前言之前我使用PC上的Qt实现了2.数据接口的获取腾讯接口:https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5https://view.inews.qq.com/g2/getOnsInfo?name=disease_...

2020-03-04 13:35:39 313 1

原创 iMX287A嵌入式Qt环境搭建

文章目录1.嵌入式Qt简介2.iMX287A支持的Qt版本1.嵌入式Qt简介2.iMX287A支持的Qt版本

2020-03-04 13:18:41 177

原创 iMX287A多种方法实现流水灯效果
原力计划

文章目录1.流水灯在电子开发中的地位1.硬件电路分析2.先点个灯吧2.shell脚本实现流水灯3.ANSI C文件操作实现流水灯4.Linux 系统调用实现流水灯1.流水灯在电子开发中的地位流水灯1.硬件电路分析点灯的根本是控制LED对应GPIO输出高低电平,那要控制哪个GPIO呢?这就需要查看原理图,看LED是连接到了哪个GPIO管脚。iMX287的扩展板AP-283Demo原理图中,...

2020-03-04 12:05:03 176

原创 iMX287A交叉编译环境搭建

文章目录1.开发套件简介2.说明:2.1 开发板配置2.2 主机配置3.主机搭建交叉编译环境4.编译第一个ARM Linux程序——Hello World5.开发板运行U盘中的可执行文件6.配置交叉编译工具到环境变量6.1 环境变量配置的几种方式6.2 iMX287A交叉编译工具链添加到环境变量6.3 查看当前环境变量7.scp传输文件到开发板7.1 从本地复制到远程7.2 从远程复制到本地7.3...

2020-03-02 18:48:29 226

原创 基于Qt的新冠肺炎疫情数据实时监控平台1.1版本

文章目录1.前言2.BUG修复3.Linux系统适配4.添加辟谣信息详情显示5.开源地址推荐阅读宅家无聊,不如学点技术!1.前言上一篇文章,介绍了使用基于Qt开发的新冠病毒肺炎疫情监控平台的实现思路和简单过程,主要包括数据接口的获取和Qt的开发,这两天修复一些BUG,完善了部分功能,如下:新增辟谣信息详情显示界面,点击谣言标题弹出信息详情。修复数据类型定义错误造成的折线显示错误的...

2020-02-15 23:02:39 776 3

原创 基于Qt的新冠肺炎疫情数据实时监控平台(开源小项目)

文章目录1.前言2.主要功能3.获取数据接口4.Qt实现5.主要难点6.打包发布7.开源地址8.总结9.最后推荐阅读宅家无聊,不如学点技术!1.前言最近新冠病毒导致的肺炎疫情,很多人都只能宅在家里。为了不让自己那么无聊,给自己找点事情,做一个**“疫情数据信息实时监控项目”**,去年开始学习的Qt/C++,拿这个小项目练练手吧。当然如果你也和我一样,建议你使用熟悉的编程语言自己实现一下...

2020-02-13 18:59:31 1369

原创 织女星开发板使用RISC-V核驱动GPIO

文章目录前言准备工作寄存器简介GPIO配置PCR寄存器GPIO控制寄存器库函数简介PORT_SetPinConfigPORT_SetPinMuxGPIO_PinInitGPIO_WritePinOutputGPIO_TogglePinsOutputGPIO_ReadPinInputRGB LED的初始化led_driver.c文件内容led_driver.h文件内容板载按键初始化button_dr...

2019-12-22 11:34:46 115

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