K210实战二-按键点灯(中断)
第一节我们了解了K210的IO口类似于FPGA,是一个可编程IO口阵列,上一节我参考官方的手册总结了一些内容,展示了GPIO输出配置的步骤,这一节则继续分享一下关于IO口的扩展,如何使用IO做输入,同时触发外部中断来进行点灯的操作。
[TOC]
K210实战二-按键点灯(中断)一、硬件平台MAIX Bit开发板
二、软件平台MAIXPY IDE
三、程序编写实战一中提到GPIO映射,返回控制IO对象后,还有一系列的配置函数,因为今天需要使用到IO口的外部中断,我们使用到irp函数,此函数的的说明如下:
irq
配置一个中断处理程序,当 pin 的触发源处于活动状态时调用它。如果管脚模式为 pin.in,则触发源是管脚上的外部值。
1GPIO.irq(CALLBACK_FUNC,TRIGGER_CONDITION,GPIO.WAKEUP_NOT_SUPPORT,PRORITY)
CALLBACK_FUNC:中断回调函数,当中断触发的时候被调用
TRIGGER_CONDITION:GPIO 引脚的中断触发模式
• GPIO.IRQ_RISING 上升沿触发
• GPIO ...
VHDL语法总结(FPGA)
FPGA学习之VHDL语法的总结
[TOC]
前言FPGA作为提升处理性能的黑马,这些年越来越火热,不论对于未来是否从事这个方向的人来说,了解FPGA都是很有必要的,抱着学习的心态我学习了FPGA,这篇博文做记录
一、 VHDL是什么?1. 缩写VHDL:Very High Speed Integrated Circuit Hardware Description Language
2. 作用
传统的数字系统设计分为硬件设计、软件设计,VHDL打破了传统的软、硬件设计界限
类似C、C++代替汇编等语言一样,VHDL代替了原理图、逻辑状态图
电子系统设计者和EDA工具之间的桥梁
EDA工具及 HDL的流行,促使电子系统向集成化、大规模和高速度等方向发展
3. VHDL与原理图描述的比较
VHDL具有较强的抽象描述能力,可进行系统行为级别的描述。描述更简洁,效率更高;
原理图描述必须给出完整的、具体的电路结构图,不能进行描象描述。描述繁杂,效率低;
VHDL描述与实现工艺无关;
原理图描述与实现工艺有关
4. VHDL语言特点
VHDL具有强大的语言结构,系统硬件抽象描述能力强 ...
一文解决串口通信数据协议
最近在做电赛,发现一些同学在解决STM32和OpenMV通信或者其他模块串口通信时,不会写串口通信的数据处理代码,我今天就分享一下我常用的串口通信数据处理代码(主要是思路)
[TOC]
一、串口通信第一步—配置双方串口初始化stm32 串口初始化我就不详细说了,因为在许多地方都能找到配置源码,而且今天主要讲的是串口通信处理数据的思路,了解了之后,不论什么板子(51 or 430)都可以使用这个逻辑
二、接收中断配置以下是一段我使用到的stm32和接收蓝牙数据的接收中断
下面的代码是: 串口接收代码。
1234567891011121314151617181920212223242526u8 USART1_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.(一般给200,接收数据量大就增加)u16 USART1_RX_STA; //接收状态标记 void USART1_IRQHandler(void) //串口1中断服务程序{ u8 Res; if(USART_GetIT ...
STM32CubeMX-串口中断实验
[TOC]
STM32CubeMX笔记-串行口中断接收一、初始准备1.硬件平台使用正点原子STM32F4探索者
2.软件平台STM32CubeMX软件平台
Keil5软件平台
STM32CubeProgrammer下载平台
二、操作步骤1.CubeMX生成初始化代码
芯片选择
打开cube软件,点击MCU选择
F4探索者的主控为STM32F407ZET6,所以在搜索框找到STM32F407ZE后点击具体芯片,再开始工程
配置时钟源
我们点开SystemCore(系统内核设置),再点击RCC配置HSE和LSE时钟源,这里我都选择使用外部时钟,配置后,我们可以看到右边芯片引脚分配图的两个时钟源引脚点亮,表示配置完成
配置时钟树
我们进入ClockConfiguration配置时钟树,使时钟的输入路径和大小符合我们预期,精英板的晶振和时钟倍频如下
一般配置正确时颜色蓝白为主,配置错误时则会出现紫色,提示我们要修改值
配置LED
参考之前的LED配置文章:链接
配置串口
探索者的的串口PA9和PA10通过USB转TTL芯片CH340G与安卓口 ...
STM32CubeMX-按键外部中断点灯
[TOC]
STM32CubeMX笔记-按键触发点灯一、初始准备1.硬件平台使用正点原子STM32F4探索者
2.软件平台STM32CubeMX软件平台
Keil5软件平台
STM32CubeProgrammer下载平台
二、操作步骤1.CubeMX生成初始化代码
芯片选择
打开Cube软件,点击MCU选择
F4探索者的主控为STM32F407ZET6,所以在搜索框找到STM32F407ZE后点击具体芯片,再开始工程
配置时钟源
我们点开SystemCore(系统内核设置),再点击RCC配置HSE和LSE时钟源,这里我都选择使用外部时钟,配置后,我们可以看到右边芯片引脚分配图的两个时钟源引脚点亮,表示配置完成
配置时钟树
我们进入ClockConfiguration配置时钟树,使时钟的输入路径和大小符合我们预期,精英板的晶振和时钟倍频如下
一般配置正确时颜色蓝白为主,配置错误时则会出现紫色,提示我们要修改值
配置LED
时钟正常工作后我们就要配置板上GPIO引脚,查询探索者原理图,我们可以看到,LED的GPIO原理图如下,分别使用了PF9和P ...
K210实战一:点亮LED
[TOC]
K210点灯一、硬件平台MAIX Bit开发板
二、软件平台MAIXPY IDE
三、程序编写K210的GPIO编程方式K210与我们以往的单片机GPIO编程区别较大,传统GPIO编程直接对IO口进行编程,配置模式,确认输入输出,而K210则拥有一个可编程IO口阵列- FPIOA (现场可编程 IO 阵列),支持每个外设随意映射到任意引脚, 使用 FPIOA 功能来实现或者通过fpioa_manager(简称fm)来管理,这两个功能的API如下:
1. fpioa_manager该模块用于注册芯片内部功能和引脚,帮助用户管理内部功能和引脚映射关系的功能模块。使用映射管理首先声明,代码如下
1from fpioa_manager import fm
声明之后则可以在程序主体内进行映射函数调用,主要使用如下两个函数
映射关联函数—register(pin, func, force=True)
pin: 功能映射引脚
function : 芯片功能
force: 强制分配,如果为True,则可以多次对同一个引脚注册;False则不允许同一引脚多次注册。默认 ...
RTT-Stdio实战-流水灯
[TOC]
RT-Thread Stdio实战系列-流水灯实战一、初始准备1.硬件平台使用正点原子STM32F4探索者
2.软件平台RT-Thread Stdio软件平台
STM32CubeProgrammer下载平台
二、操作步骤1.RTT环境生成
新建RTT项目
新建RTT控件如下
选择基于芯片的项目,填写工程名字,芯片类型,控制台串口和下载器,控制台串口我使用的串口一,连接电脑方便调试
工程新建后左边的项目资源管理器会显示我们的工程,我们把他展开
新建程序文件
新建一个myapp文件夹,建立一个led_flash.c和.h文件,建立后如下
2.RTT程序编写
程序源码
创建之后分别写入头文件和.c文件的代码如下
led_flash.h的代码
123456#ifndef __LED_FLASH_H__#define __LED_FLASH_H__static int led_init(void);static void led_entry(void *prg);#endif
led_flash.c的代码
1234567891011121 ...
STM32CubeMX-流水灯实战
STM32快速建立工程神器:STM32CubeMX实战第一发
[TOC]
STM32CubeMX笔记-流水灯一、初始准备1.硬件平台使用正点原子STM32F4探索者
2.软件平台STM32CubeMX软件平台
Keil5软件平台
STM32CubeProgrammer下载平台
获取方式:
百度云直接链接地址:
MDK5安装包+keygen破解器+F1环境包:链接:https://pan.baidu.com/s/1jrx_72dtU22dobg9Iwg27A 提取码:6ozv 复制这段内容后打开百度网盘手机App,操作更方便哦
STM32CubeMX软件安装包:链接:https://pan.baidu.com/s/1k93aYA24n2LDZZlvbG82zA 提取码:cc9r 复制这段内容后打开百度网盘手机App,操作更方便哦
百度云若失效,文末公众号后台回复cubemx和mdk获取
二、操作步骤1.CubeMX生成初始化代码
芯片选择
打开cube软件,点击MCU选择
F4探索者的主控为STM32F407ZET6,所以在搜索框找到STM32F407ZE后 ...
浮点数16进制与10进制转换
10进制浮点数转换成16进制与16进制转换成10进制
接触了一个惯导模块,实时解算惯导数据,通过串口发送出来,惯导的数据本来是浮点数,转换成16进制后,进一步输出,因为浮点数的存储是4个字节,即32位,单片机通信是以8位为位宽的,所以10进制与16进制的互换是以多个8位字节来操作的,转换源码如下:
10进制转16进制
使用移位操作
123456float dat;unsigned char mem[4];mem[0]=dat;mem[1]=dat>>8;mem[2]=dat>>16;mem[3]=dat>>24;
16进制转10进制:
使用c语言库中memcpy函数:
1234567891011#include "string.h"#include "stdio.h"float dat[1]={0};mem[0]=0x34;mem[1]=0xEF;mem[2]=0X1E;mem[3]=0x40;memcpy(dat,mem,d);//将mem地址的连续四个字节内容拷贝到dat ...
温度测控项目设计一
24位温度测控系统原理图分析
[TOC]
24位温度测控系统原理图分析一、整体分析电路实现功能:stm32主控控制恒流源输出电流给温度传感器,返回差分信号,滤波后进行模数转换,单片机采集信号,处理显示,并控制外围电路处理,发送信息到上位机,控制LED以及蜂鸣器的鸣叫(该温度测控系统工作于强磁干扰下,器件选型与设计需注意抗干扰!)
电路结构:
.png)
二、局部设计分析2.1 电源供电设计电源供电是220v输入,并且工作在强磁环境下,设计较为麻烦,所以直接使用金升阳的成品模块,加上一个隔离模块,火线出连接一个保险丝做保护,220V输出+/-12V,且做好了隔离,+/-12V转+/-5V因为是给核心采集电路供电,直接影响了采集精度,所以使用带隔离且低噪声的LDO,具体如下:
220转换+/-12V电路:
两个输出端我接一个104和一个120uf的电解解电容滤波。
+12转+5V电路
使用TPS7A4701,TI公司生产芯片,专用于高精度AD采集DC-DC的低压降稳压器输出电压噪声只有4.17 µVRM ...