MCU FT61F14x入门
目录
- 前言
- 一、CMIDE的使用
- 二、系统时钟与睡眠
- 2.1 上电复位 (POR)与系统复位
- 2.2 振荡器和系统时钟
- 2.3 SLEEP睡眠模式 (POWER-DOWN)
- 2.4 低电压检测/比较器 (LVD)
- 三、I/O端口与中断
- 四、串口USART
- 五、定时器
- 六、ADC
- 七、EEPROM
前言
FT61F14x是辉芒微电子的微控制器,是一款8位基于EEPROM的RISC MCU。官方提供CMIDE3.0.9可用于编译调试,本文主要讲解其开发环境及部分外设使用,资源见附件。官网链接:https://www.fremontmicro.com/#/home
一、CMIDE的使用
首先需要新建工程,直接编写并编译可能会出现以下链接警告

点击工程->新建工程,设置工程名以及工程路径,然后选择相应的芯片类型,最后点击OK就可以一键生成工程

对生成工程直接点击编译,弹出Options选项配置,可以按照下图修改,点确定便可编译成功。

注意:提示系统占用不可以删除和修改的地方,不要删除,否则会提示链接报警
二、系统时钟与睡眠
2.1 上电复位 (POR)与系统复位

上电过程,即 VDD 从低于 Power-On-Reset 电压(VPOR)上升至高于 VPOR 的过程。当 CPU 重新上电时,VDD 可能没有完全掉电至 0V。初始化配置由CMIDE 界面设置,不能通过指令修改。初始化配置时序如下:

与 POR 不同,系统复位(system reset) 并不会完全复位。系统复位时,CPU 是否启动初始化配置过程则取决于复位触发类型。若启动初始化配置则空闲等待4ms,然后重新加载初始化配置寄存器值,如果使能 PWRT 将额外延时64ms,随后系统正常启动。在系统复位中:
- 除初始化配置寄存器外,POR 过程中被重置的寄存器在系统复位时也会被同样重置;
- 程序计数器 PC = 0x00, 指令寄存器 = “NOP”, 堆栈指针 = “TOS” (栈顶);
除仿真调试的 OCD(On-Chip Debugger) 模块外,以下 7 种事件可触发系统复位:
- 欠压复位 (BOR / LVR) – 总会启动初始化配置;
- 非法指令复位;
- 看门狗复位 (WDT,CPU 处于非 SLEEP 状态);
- EMC 复位– 总会启动初始化配置;
- 软件复位 (执行指令 “RESET”);
- 堆栈溢出复位 (上溢或下溢);
- 外部 I/O 复位 (/MCLRB) – 总会启动初始化配置 ( ≥ VerB 芯片)。

系统复位的大多数设置均由 IDE 界面配置,而不能通过指令修改。系统复位相关寄存器汇总:

2.2 振荡器和系统时钟

系统时钟(SysClk) 可通过指令选择为内部高速振荡器 HIRC 16MHz,内部低速振荡器 LIRC 32KHz,或外部振荡器。如果选择外部振荡器,那么由初始化配置寄存器 “FOSC”选定3 种外部振荡器之一。系统时钟还可通过指令进一步选择为内部或外部振荡器的分频 。系统时钟用于产生指令时钟(Instruction Clock):
指令时钟 = SysClk / N ; N = 2 for 2T, 4 for 4T
SysClk 系统时钟源设置相关用户寄存器:

通常我们选择内部时钟即SCS=1,不分频即MCKCF=0111,使用OSCCON寄存器如下(SCS为OSCCON的BIT0位设置):
OSCCON = 0B01110001; //WDT 32KHZ IRCF=111=16MHZ//Bit0=1,系统时钟为内部振荡器//Bit0=0,时钟源由FOSC<2:0>决定即编译选项时选择
2.3 SLEEP睡眠模式 (POWER-DOWN)
睡眠模式下,指令时钟关闭,指令执行停止,大多数模块掉电以降低功耗。除指令时钟外,其他模块可根据需求在 SLEEP 模式下保持运行:

SLEEP示例:
SLEEP(); //SYSCFG.h里定义#define SLEEP() asm("sleep")
NOP(); // 中断方式唤醒
从睡眠中唤醒有 2 个基本原则:
- 基于时间,即 CPU 在一定的时间后醒来。建议选择 LIRC 作为计时的时钟源,因为 LIRC 比 HIRC的功耗更低。
- 基于事件,即触发 POR,系统复位,仅唤醒而不产生中断,以及产生中断的事件,如 LVD,ADC,EEPROM 写完成,外部管脚中断。
注意:
- 如果在执行 SLEEP 指令之前发生中断(中断标志位置 1 且其中断使能,但全局中断 GIE 禁止),则SLEEP 指令将作为 NOP 执行,不会进入睡眠模式。
- 由于同步延时,将中断标志位清 0 之后,至少要等两条指令才可以执行 SLEEP 指令,否则不会进入睡眠模式。
- 从睡眠中唤醒将清零 WDT。
- 使用中断方式从 SLEEP 中唤醒时,将先执行下一条指令,然后再调用中断服务程序。为了避免重复执行,建议紧跟 SLEEP 的后面写为 NOP 指令。
2.4 低电压检测/比较器 (LVD)
LVD 的工作原理与LVR类似,但是所有控制位和参数选择位均由用户指令设置,而不是初始化配置时。LVD 相关寄存器汇总:

三、I/O端口与中断
四、串口USART
五、定时器
六、ADC
七、EEPROM
相关文章:
MCU FT61F14x入门
目录 前言一、CMIDE的使用二、系统时钟与睡眠2.1 上电复位 (POR)与系统复位2.2 振荡器和系统时钟2.3 SLEEP睡眠模式 (POWER-DOWN)2.4 低电压检测/比较器 (LVD) 三、I/O端口与中断四、串口USART五、定时器六、ADC七、EEPROM 前言 FT61F14x是辉芒微电子的微控制器,是一…...
星火大模型——多模态API调用(图像+文本)
参考文档 图片理解 API 文档 环境配置 pip3 install websocket-client核心代码 import _thread as thread import base64 import datetime import hashlib import hmac import json from urllib.parse import urlparse import ssl from datetime import datetime from time…...
计算机基础面试题 |22.精选计算机基础面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
kafka连接失败时springboot项目启动停机问题
问题:springboot整合kafka,作为消费端,对端的kafka系统是在生产环境,在本地开发测试时配置了对端的生产环境的kafka地址。因为开发环境和对端生产环境是不通的,所以连接肯定是失败的,kafka的连接失败导致sp…...
【算法题】46. 全排列
题目 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入࿱…...
可视可交互!在全志H618上用OpenCV读取图像显示到PyQt5窗口上
OpenCV能够处理图像、视频、深度图像等各种类型的视觉数据,在某些情况下,尽管OpenCV可以显示窗口,但PyQt5可能更适合用于创建复杂的交互式应用程序,而自带GPU的H618就成为了这些图像显示的最佳载体。 这里分享一个代码࿰…...
现代密码学 补充1:两种窃听不可区分实验的区别
两种窃听不可区分实验 写在最前面两种窃听不可区分实验1. 完美保密中的窃听不可区分实验2. 窃听不可区分实验(对称加密算法)主要区别 写在最前面 两种窃听不可区分实验 两种窃听不可区分实验(Eavesdropping Indistinguishability Experimen…...
多功能号卡推广分销管理系统 流量卡推广分销网站源码-目前市面上最优雅的号卡系统
一套完善,多功能,的号卡分销系统,多接口,包括运营商接口,无限三级代理,最简单易用的PHP~ 目前市面上最优雅的号卡系统!没有之一 软件架构说明 环境要求php7.3以上(建议低于8.0),MySQL5.6以上,Nginx1.16(无要求) 产品特性 自动安装向导 易于安装使用部署 多个第…...
MySQL语法及IDEA使用MySQL大全
在项目中我们时常需要写SQL语句,或简单的使用注解直接开发,或使用XML进行动态SQL之类的相对困难的SQL,并在IDEA中操控我们的SQL,但网上大都图方便或者觉得太简单了,完全没一个涵盖两个方面的讲解。 单表: …...
分布式系统网关和sentinel
1.网关 作用:网关是给分布式系统进行请求路由分配的服务 功能: 请求路由 请求过滤 请求鉴权 流量控制 统一日志 2.搭建网关(微服务) 2.1依赖、配置文件、启动类 2.2配置路由(id,断言,…...
无法访问Bing网站 - 解决方案
问题 Bing官方网址:https://www.bing.com/ 电脑无法访问Bing网站,但手机等移动设备可以访问Bing网站,此时可尝试以下方案。 以下方案适用于各种系统,如Win/Linux系统。 解决方案 方案1 修改Bing网址为:https://www4…...
Spring Boot 自动装配原理
Java面试题目录 Spring Boot自动装配原理 Spring Boot启动类上的SpringBootApplication注解中包含EnableAutoConfiguration注解,表示开启自动装配。在EnableAutoConfiguration注解中使用Import注解引入AutoConfigurationImportSelector组件,此类中通过S…...
golang如何生成csv文件
在Go语言中,可以使用标准库中的"encoding/csv"包来生成CSV文件。下面是一个简单的示例代码,演示如何使用Go生成CSV文件: package mainimport ("encoding/csv""os" )func main() {// 创建一个新的CSV文件file,…...
你真的掌握了“C语言分支循环”吗
目录 前言 1. if语句 1.1 if 1.2 else 1.3 分支中包含多条语句 1.4 嵌套if 1.5 悬空else问题 2. 关系操作符 3. 条件操作符 4. 逻辑操作符:&& , || , ! 4.1 逻辑取反运算符 4.2 与运算符 4.3 或运算符 4.4 练习:闰年的判…...
Apollo计算几何算法(一)
Planning模块,路径和速度曲线抽象成折线(Polyline),障碍物抽象成多边形(Polygon)。在碰撞检测、投影计算距离、平滑曲线等方面应用广泛。 1 几何算法 1.1 线段 moudles/common/math/line_segment2d.h n…...
计算机网络、浏览器相关高频面试题
为什么使用CDN 会更快? 没有使用CDN的情况下,用户从浏览器输入地址,依次经过浏览器缓存、操作系统缓存(如本地host文件)、域名解析服务器、根域名解析服务器、顶级域名服务器直到找到对应的ip地址返回给用户ÿ…...
遥感单通道图像保存为彩色图像
系列文章目录 第一章PIL单通道图像处理 文章目录 系列文章目录前言一、代码实现二、问题记录在这里插入图片描述 总结 前言 将单通道图像以彩色图像的形式进行保存主要使用了PIL库 一、代码实现 palette_data [***]:可以进行自定义设置 代码如下: fr…...
如何将字符串转换为整数
将字符串转换为整数是常见的编程需求。以下是几种常见编程语言的示例: Python str_num "123" num int(str_num) print(num) # 输出: 123 JavaScript let str_num "123"; let num parseInt(str_num); console.log(num); // 输…...
如何在Linux上安装使用达芬奇DaVinci-Resolve视频剪辑|附带格式转换脚本
如何在openSUSE-Linux上安装DaVinci-Resolve 您是否还在等待Adobe套件在Linux上的到来?您是否曾多次尝试通过Wine使用Premiere?您是否还在想苹果为什么不以Linux本机版本发布Final Cut Pro? 如果您对所有这些问题中的一个或全部回答是&…...
FlinkAPI开发之数据合流
案例用到的测试数据请参考文章: Flink自定义Source模拟数据流 原文链接:https://blog.csdn.net/m0_52606060/article/details/135436048 概述 在实际应用中,我们经常会遇到来源不同的多条流,需要将它们的数据进行联合处理。所以…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...
