推荐阅读最新更新时间:2024-03-16 14:59
模块学习(三)——激光测距模块(TOF10120)
该款激光测距模块集成了芯片,能够十分方便的直接传回数据,最近备赛,分享一下该模块的使用,以及需要注意的问题。此次是在MSP430F5529上进行开发的,其他MCU可自行移植。 1.硬件接线 上图是我从TOF10120技术手册上截取下来的,可以知道,该模块支持IIC和UART两种通讯模式,可根据MCU资源选择合适的方式,此次直接利用串口进行开发。 绿线 ——SCL 蓝线 ——SDA 白线 ——TXD 黄线—— RXD 红线 ——VCC 黑线 ——GND 对应于串口的话, (tof)SCL-SDA(430); (tof)SDA-SCL(430)即可 2.配置 可以直接利用USB转TTL模块先进行配置,配置好之后直接使用
[单片机]
STM32学习之路-外部中断(2)
继续上篇的内容. 配置好外部中断源以后, 就得使能外部中断线了. 为了方便看再借下这个图: 对外部中断的使能其实就是配置上面这些寄存器.即使能哪EXIT线,选择上面模式,是中断还是事件,选择下降沿还是上升沿. 具体怎么写寄存器这就不研究了, = = 太麻烦了.. 直接用STM32的库就行了,来看看它的代码吧 这是EXTI结构体的初始化函数, void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct) { EXTI_InitStruct- EXTI_Line = EXTI_LINENONE; EXTI_InitStruct- EXTI_Mode = EXTI
[单片机]
LPC1768菜鸟学习之GPIO和外部中断
LPC1768的P0口和P2口既能做输入输出,还可以配置为中断源。 现在P2.10作为按键,配置如下: void BUTTON_init(void) { LPC_GPIO2- FIODIR &=~(1 10); /* PORT2.10 definedas input */ LPC_GPIOINT- IO2IntEnF |= (1 10); /* enable falling edgeirq */ NVIC_EnableIRQ(EINT3_IRQn); /* enable irq in nvic */ } void EINT3_IRQHandler() { LPC_GPIO
[单片机]
MSP430F5529 DriverLib 库函数学习笔记(五)定时器A
平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 硬知识 定时器A具有如下特点: 4种运行模式的异步16位定时/计数器; 参考时钟源可选择配置; 高达7个可配置的捕获/比较寄存器; 可配置的PWM输出; 异步输入和输出锁存; 具有可对Timer_A中断快速响应的中断向量寄存器。 定时器A的结构框图如图所示。 定时器A 16位定时器原理 16位定时器的计数值寄存器TAR在每个时钟信号的上升沿进行增加/减少,可利用软件读取TAR寄存器的计数值。此外,当
[单片机]
STM32F407中断学习笔记
中断与事件的区别 相同点:中断和事件都是触发的一种,都是可以设置触发的; 异同点: 中断触发后必须有中断处理子程序IRQ handle,例如比如按键中断触发,实现一个LED的闪烁,可以在按键按下后,在中断处理程序中实现某个LED的电平反转 但在事件中,事件是没有中断处理子程序的,事件发生后,会直接发出一个脉冲信号给与之联动的操作,也可以同样实现LED电平的反转,只要有事件发生,就会有一个脉冲信号,这样的好处是,不需要CPU干预了,可以节省CPU的处理资源,相比中断处理,速度还更快,因为硬件的速度总是比软件处理快。 EXTI 功能框图 EXTI 可分为两大部分功能,一个是产生中断,另一个是产生事件,这两个功能从硬件上就有所
[单片机]
STM32Hal库学习(三)CubeMx学习外部中断
外部中断主要是在CubeMx中设置好GPIO 在引脚界面配置成中断 然后configuration里对GPIO配置 对于低电平触发中断,需要把GPIO设置为上拉,然后下降沿触发,反之高电平触发,反过来 对NVIC配置 在生成的程序里 stm32f1xx_it.c里有EXTI0中断处理函数 此函数在stm32f1xx_hal_gpio.c里 中断标志位不为0,清零然后调用回调函数 __weak函数用于定义变量或者函数,常见于定义函数,在MDK ARM链接时优先链接定义为非weak的函数或变量,如果找不到则再链接weak函数 在main里自定义HAL_GPIO
[单片机]
msp430f5529捕获加串口源码
msp430f5529捕获加串口,可以供大家学习 单片机源程序如下: #include msp430f5529.h #define uint unsigned int #define uchar unsigned char uint flag,TA_cent,PerVal; unsigned long int val,cha; int m ; void Delay10ms(unsigned int c) //误差 0us { unsigned char a, b; //--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--// for (;c 0;c--) {
[单片机]
MSP430F5529、G2553A/D转换模块
***TI公司的MSP430F5529的A/D转换模块在P1.6输入端,名称为ADC12,是用12位数字寄存器保存转换结果的AD转换器。 ***转换有两个参考电压,最高电压VR+,最低电压VR-作为转换的上下限,高于等于VR+输出0FFF,小于等于VR-输出0000,待转换模拟电压Vin转换后的数字量计算为Data=4095 x (Vin-VR-)/(VR+ -VR-),程序结构如下 #include "msp430F5529.h" int tt=0,temp,kk; void delay(int ns) { while(ns--); } //******A/D转换函数设置*****// void adc1() { P1SE
[单片机]