- 博客(23)
- 资源 (8)
- 收藏
- 关注
原创 GPIO经验总结
eg:当我们使用按键时,会用到GPIO瞬间检测按键的电位,当我们设定按下按键为低电位时,我们应该定义按键为上拉输入,将电位拉到高电位,当按键按下时,在上拉输入的情况下,低电平的是能够非常明显的读取到的。eg:当我们使用按键时,会用到GPIO瞬间检测按键的电位,当我们设定按下按键为高电位时,我们应该定义按键为下拉输入,将电位拉到低电位,当按键按下时,在下拉输入的情况下,高电平的是能够非常明显的读取到的。高阻态,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,
2024-01-12 10:49:23
1082
原创 Matlab导入数据绘制图像
x = data(:,1)%data数值矩阵名字, 1是第一列内容。y = data(:,2) %data数值矩阵名字,2是第二列内容。x = data(:,1)%data数值矩阵名字, 1是第一列内容。y = data(:,2) %data数值矩阵名字,2是第二列内容。x = data(:,1)%data数值矩阵名字, 1是第一列内容。y = data(:,2) %data数值矩阵名字,2是第二列内容。plot(x,y)%制图。plot(x,y)%制图。plot(x,y)%制图。
2023-12-19 08:34:50
9399
原创 什么是共模信号?什么是差模信号?什么是共模抑制比?
当需要放大信号的倍数很大时,考虑到共模信号,防止共模信号放大后对差模信号的影响,一般我们选取共模抑制比大的运放芯片,采用二级放大,比如可以调节R1、与R8的阻值调节放大倍数。一般运放芯片都有 60dB 以上的 CMRR,高级的可达 140dB 以上。共模抑制比:放大器对差模信号的电压放大倍数Aud与对共模信号的电压放大倍数Auc之比。共模信号是信号线对地的电压。差模信号是信号线之间的电压。信号=共模信号+差模信号。
2023-11-27 16:43:34
962
原创 什么是阻抗?
在工程的世界里,我们无法做的这么干脆利落,往往讲究个“差不多”就行。所以,“短路模型”我们只能做到“低阻抗”,“开路模型”我们只能做到“高阻抗”,能量被大幅度“衰减”,我们就认为达标了。研究清楚阻抗特性,用串联和并联定理结合欧姆定律,我们就知道电路在给什么样的激励,会得到什么样的输出。
2022-10-11 13:07:11
3340
原创 DSP的多通道缓冲串口McBSP(二)
1、配置从设备(MCBSP)的数据格式寄存器:(1)与AIC33相同 单相帧,每帧2个数据单元(Element),每个数据单元16bit,1位延迟。具体配置如下表:(2)采用右对齐、高位补零 一次完成读双声道数据:由RSR到RBR时,32bit逐位进入。 双声道数据从RBR到DRR分两次完成:每次16位。 时序图可看出DRR按照数据单元读取。串口控制寄存器(SPCR)RJUST:SPCR[14:13],接收符号扩展和对齐模式位.RJUST = 0:在DRR中右对齐,MSB零填充.
2022-05-01 18:01:31
3015
原创 DSP的多通道缓冲串口McBSP(一)
多通道缓冲串口(McBSP):分为数据通路和控制通路:数据通路主要是通过对应寄存器控制引脚(DR和DX)的数据收发的格式,完成数据的发送和接收。控制通路主要通过对应寄存器控制时钟源选择、格式(CLKS和内部时钟等), 位同步(CLKR/CLKX)、帧同步(FSX/FSR)信号格式。数据通路传输数据寄存器:DRR、DXR 从时序图可看出D(R/X)按照数据单元读取,相1有2个数据单元,每个数据单元位数为12bit; 相2有3个Element,每个数据单元位数为8bit;图...
2022-04-20 19:38:53
9808
原创 关于C语言的基础知识(一)
C语言的内存分布1、栈区(stack)由编译器自动分配释放,其操作方式类似于数据结构中的栈,用于存放函数的形参、返回地址、返回数据,局部变量的值等。2、堆区(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。它与数据结构中的堆完全不同,其存储方式类似于链表3、全局(静态区)(static)程序结束后由系统释放,用于存放全局变量、静态变量,已初始化的全局变量和未初始化的静态变量放在一块区域,未初始化的全局变量和未初始化的静态变量放在相邻另一块区域。4、文字常
2022-04-14 22:04:15
114
原创 关于uC/OS-II 概述
从应用程序设计的角度来看,uC/OS-II 的任务就是一个用户编写的 C 函数和与之相关 联的一些数据结构而构成的一个实体。把一个大型任务分解成多个小任务﹐然后在计算机中 通过运行这些小任务﹐最终达到完成大任务的目的。 在 uC/OS-II 中,与上述那些小任务对应的程序实体就叫做“任务”(实质上是一个线程), uC/OS-II 就是一个能对这些小任务的运行进行管理和调度的多任务操作系统。 1.任务的切换 在内存中为每个任务创建一个虚拟的处理器(...
2022-04-14 21:13:27
2864
原创 关于 Cortex-M3的汇编指令
在Cortex-M3 中,有专门的指令负责堆栈操作——PUSH 和 POP。它俩的汇编语言语法如下例所演示PUSH {R0} ; *(--R13)=R0。R13 是 long*的指针POP {R0} ; R0= *R13++PUSH 和 POP 还能一次操作多个寄存器PUSH {R0-R7, R12, R14} ; 保存寄存器列表…; 执行处理POP {R0-R7, R12, R14} ; 恢复寄存器列表BX R14 ; 返回到主调函数寄存器的PUSH 和 POP ...
2022-04-14 21:04:01
1152
原创 基于DSP的定时中断
本文以TMS320DM6437定时器为例,TMS320DM6437有3个64位软件可编程定时器,分别是定时器0(Timer 0)、定时器1(Timer 1)和定时器2(Timer 2)。定时器有四种工作模式:64位通用(GP)定时器模式----------Timer 0、Timer 1双32位非链接模式(独立操作)----Timer 0、Timer 1双32位链接模式(相互配合操作)--Timer 0、Timer 1看门狗定时器(Watchdog Timer)-- Timer 2GP
2022-04-14 01:13:37
2889
原创 STM32之ADC模数转换
对于STM32的GPIO来说,只能读取引脚的高低电平,要么低电平,要么高电平,只有两个值,而使用了ADC之后,我们就可以对这个高电平和低电平之间的任意电压进行量化,最终用一个变量来表示,读取这个变量,所以ADC其实就是一个电压表,把引脚的电压值测出来,放在一个变量里。...
2022-04-13 12:57:29
3577
原创 STM32定时器定时中断
1、定时器的分类:高级定时器、通用定时器、基本定时器。比如STM32F103ZE,有8个定时器第一步,RCC开启时钟。(这里选用内部时钟,不涉及到GPIO)这里选用定时器2RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);通用定时器的时钟一共有4个:1、来自RCC的TIMxCLK(内部时钟信号)2、TIMx_ETR(外部时钟输入)3、ITRx(来自其余定时器用于定时器的级联)4、TIMx_CHx(外部通道)1、void
2022-04-12 00:22:24
515
原创 基于STM32的PWM驱动LED呼吸灯
一,PWM基本原理所谓PWM,就是脉冲宽度调制技术,其具有两个很重要的参数:频率和占空比。频率,就是周期的倒数;占空比,就是高电平在一个周期内所占的比例。如当周期T=T1+T2;T1为高电平时间,T2为低电平时间,此时频率F的值为1/(T1+T2),占空比D的值为T1/(T1+T2)。通过改变单位时间内脉冲的个数可以实现调频;通过改变占空比可以实现调压。占空比越大,所得到的平均电压也就越大,幅值也就越大;占空比越小,所得到的平均电压也就越小,幅值也就越小,如动图演示所示。PWM方波的示意图如下图所示:
2022-04-10 23:07:45
5819
5
原创 关于DSP的GPIO与中断事件
本文与TMS320DM6437为例,TMS320DM6437共有111个GPIO引脚,分属7个bank(组)。(bank0~5):各有16个引脚,(bank6):有15个引脚。如: bank0对应的16个管脚为GP[0]~GP[15];bank1对应的16个管脚为GP[16]~GP[31];......GPIO的使用,由多个控制寄存器控制,寄存器主要分为两类: 数据类寄存器 ,中断类寄存器一个寄存器(32位寄存器)控制两组bank的GPIO引脚,如: register01:bank0,ban
2022-04-07 01:05:46
2382
原创 关于STM32的中断操作
EXTI的基本结构:由上图可得,首先,选用GPIOx,GPIO_Init(GPIOx, &GPIO_InitStructure)(GPIO_InitTypeDef GPIO_InitStructure;配置自己选)接着,打开AFIO时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);然后,EXTI_Init(&EXTI_InitStructure); (EXTI_InitTypeDef EXTI_InitStructu
2022-04-04 22:26:56
910
原创 关于STM32串口USART的操作
这里以stm32c8t6为例,USART1_TX GPIOA.9(发送端)USART1_RX GPIOA.10(接收端)首先, uart_init(9600); //串口初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);接着,串口发送数据: USART_SendData(USART1, Data);//向串口1发送数据 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)...
2022-04-04 21:54:39
6942
原创 关于stm32的GPIO寄存器操作(一)
例子://PB7#define DS1302_DATA_INPUT() {GPIOB->CRL&= 0X0FFFFFFF;GPIOB->CRL|= 0x80000000;} //上拉或下拉输入#define DS1302_DATA_OUTPUT() {GPIOB->CRL&= 0X0FFFFFFF;GPIOB->CRL|= 0x30000000;} //推挽输出,输出模式位50MHz或者#define DS1302_DATA_INPU...
2022-04-02 15:27:03
1914
原创 关于ucos的邮箱、信号量使用步骤
1、信号量OS_EVENT * sem; //信号量指针//开始任务void start_task(void *pdata){ OS_CPU_SR cpu_sr=0; pdata=pdata; ........ sem_beep=OSSemCreate(0); //创建信号量 OSStatInit(); //开启统计任务 OS_ENTER_CRITICAL(); //进入临界区(关闭中断) ..... ...
2022-03-28 13:18:33
1259
原创 Cortex-M3 处理器
ARM处理器一直支持两种形式上相对独立的指令集,它 们分别是: 32位的ARM指令集。对应处理器状态:ARM状态 16位的Thumb指令集。对应处理器状态:Thumb状态
2022-03-10 15:42:43
4548
原创 转换或新建为stm32f103C8T6的程序步骤
一、换启动文件startup_stm32f10x_hd.s ------> startup_stm32f10x_md.s二、打开魔术棒,修改Device三、更换全局宏定义在这里改成STM32F10X_MD,USE_STDPERIPH_DRIVER最后,keil可能会出现Flash Download failed -“Cortex-M3的错误,应该是Debug->setting->connect中没有选择“under Reset”导致出错!...
2022-03-09 18:44:10
1601
DPMI16BI DPMI16Bi.ovl文件
2022-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人