一、STM32F1和F4的区别?

内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核;


主频不同:F1主频72MHz,F4主频168MHz; 浮点运算:F1无浮点运算单位,F4有; 功能性能:F4外设比F1丰富且功能更强大,比如GPIO翻转速率、上下拉电阻配置、ADC精度等; 内存大小:F1内部SRAM最大64K,F4有192K(112+64+16)。


二、介绍以下STM32启动过程?

通过Boot引脚设定,寻找初始地址

初始化栈指针 __initial_sp 指向复位程序 Reset_Hander 设置异常中断 HardFault_Handler 设置系统时钟 SystemInit 调用C库函数 _main


三、介绍以下GPIO?

解答:

参看:单片机入门有多简单?带你了解GPIO内部电路及几种常用模式 GPIO 8种工作模式(gpio_init.GPIO_Mode): (1) GPIO_Mode_AIN 模拟输入 (2) GPIO_Mode_IN_FLOATING 浮空输入 (3) GPIO_Mode_IPD 下拉输入 (4) GPIO_Mode_IPU 上拉输入 (5) GPIO_Mode_Out_OD 开漏输出 (6) GPIO_Mode_Out_PP 推挽输出 (7) GPIO_Mode_AF_OD 复用开漏输出 (8) GPIO_Mode_AF_PP 复用推挽输出

APB2负责 AD,I/O,高级TIM,串口1。 APB1负责 DA,USB,SPI,I2C,CAN,串口2345,普通TIM,PWR

d3681554-d3ba-11ed-bfe3-dac502259ad0.png

四、UART

问题一:串行通信方式介绍? 同步通信:I2C 半双工,SPI 全双工异步通信:RS485 半双工、RS232 全双工

问题二:串口配置? 串口设置的一般步骤可以总结为如下几个步骤:

(1)串口时钟使能,GPIO时钟使能;

(2)串口复位;

(3)GPIO端口模式设置TX的GPIO工作模式为:GPIO_Mode_AF_PP;//复用推挽输出RX的GPIO工作模式为:GPIO_Mode_IN_FLOATING;//浮空输入;

(4)串口参数初始化主要包含:波特率设置(115200)、8个数据位、1个停止位、无奇偶校验位、无硬件数据流控制、收发模式;

(5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤);

(6)使能串口(7)编写中断处理函数。

问题三:USART主要特点? (1)全双工操作(相互独立的接收数据和发送数据);

(2)同步操作时,可主机时钟同步,也可从机时钟同步;

(3)独立的高精度波特率发生器,不占用定时/计数器;

(4)支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢结构;

(5)由硬件支持的奇偶校验位发生和检验;

(6)数据溢出检测;

(7)帧错误检测;

(8)包括错误起始位的检测噪声滤波器和数字低通滤波器;

(9)三个完全独立的中断,TX发送完成、TX发送数据寄存器空、RX接收完成;

(10)支持多机通信模式;

(11)支持倍速异步通信模式。

应用场景:GPS、蓝牙、4G模块

五、I2C

问题一:I2C 总线在传送数据过程中共有三种类型信号? (1)开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。

(2)结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。

(3)应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。

问题二:I2C配置主机模式端口该怎么配置? 硬件模式:复用开漏输出、既不上拉也不下拉。(快速模式:400 Kbit/s)软件模拟:推挽输出、配置上拉电阻。

问题三:I2C仲裁机制? I2C 仲裁机制,理解了 线“与”(Wired-AND),就一目了然了。简单说,它遵循“低电平优先”的原则,即谁先发送低电平谁就会掌握对总线的控制权。


硬件模式: 是有通信速率设置的


/* STM32 I2C 快速模式 */

#define I2C_Speed 400000

/* 通信速率 */



I2C_InitStructure.I2C_ClockSpeed = I2C_Speed;

软件模拟: 没有设置通信速率,该怎么计算呢?

通过I2C总线位延迟函数 i2c_Delay:


static void i2c_Delay(void)

{

uint8_t i;



/* 

     下面的时间是通过安富莱AX-Pro逻辑分析仪测试得到的。

    CPU主频72MHz时,在内部Flash运行, MDK工程不优化

    循环次数为10时,SCL频率 = 205KHz 

    循环次数为7时,SCL频率 = 347KHz, SCL高电平时间1.5us,SCL低电平时间2.87us 

     循环次数为5时,SCL频率 = 421KHz, SCL高电平时间1.25us,SCL低电平时间2.375us 



    IAR工程编译效率高,不能设置为7

  */

for (i = 0; i < 10; i++);

}


应用场景:PMIC、加速度计、陀螺仪

六、SPI

问题一:SPI需要几根线?
SPI 接口一般使用 4 条线通信:

MISO 主设备数据输入,从设备数据输出。

MOSI 主设备数据输出,从设备数据输入。

SCLK 时钟信号,由主设备产生。

CS 从设备片选信号,由主设备控制。

问题二:SPI通信的四种模式?
SPI 有四种工作模式,各个工作模式的不同在于 SCLK 不同, 具体工作由 CPOL,CPHA 决定。

(1)CPOL: (Clock Polarity),时钟极性:
SPI的CPOL,表示当SCLK空闲idle的时候,其电平的值是低电平0还是高电平1:CPOL=0,时钟空闲idle时候的电平是低电平,所以当SCLK有效的时候,就是高电平,就是所谓的active-high;CPOL=1,时钟空闲idle时候的电平是高电平,所以当SCLK有效的时候,就是低电平,就是所谓的active-low;

d37bb78a-d3ba-11ed-bfe3-dac502259ad0.jpg

(2)CPHA:(Clock Phase),时钟相位:
相位,对应着数据采样是在第几个边沿(edge),是第一个边沿还是第二个边沿,
0对应着第一个边沿,1对应着第二个边沿。对于:
CPHA=0,表示第一个边沿:
对于CPOL=0,idle时候的是低电平,第一个边沿就是从低变到高,所以是上升沿;
对于CPOL=1,idle时候的是高电平,第一个边沿就是从高变到低,所以是下降沿;
CPHA=1,表示第二个边沿:
对于CPOL=0,idle时候的是低电平,第二个边沿就是从高变到低,所以是下降沿;
对于CPOL=1,idle时候的是高电平,第一个边沿就是从低变到高,所以是上升沿;

d38dbdae-d3ba-11ed-bfe3-dac502259ad0.png

问题三:该如何确定使用哪种模式?
(1)先确认从机需求的 SCLK 极性,不工作时是在低电位还是高电位,由此确认 CPOL 为 0 或 1。看原理图,我们设置串行同步时钟的空闲状态为高电平所以我们选择 SPI_CPOL_High。也就是CPOL为1
(2)再由slave芯片 datasheet 中的时序图确认 slave 芯片是在 SCLK 的下降沿采集数据,还是在SCLK的上升沿。翻译一下:W25Q32JV通过SPI兼容总线访问,包括四个信号:串行时钟(CLK),芯片选择(/CS),串行数据输入(DI)和串行数据输出(DO)。标准SPI指令使用DI输入引脚串行地将指令、地址或数据写入CLK上升沿上的设备。DO输出引脚用于从CLK下降沿上的设备读取数据或状态。支持模式0(0,0)和3(1,1)的SPI总线操作。模式0和模式3关注的是当SPI总线主端处于待机状态,数据没有被传输到串行Flash时CLK信号的正常状态。对于模式0,在下降和上升时,CLK信号通常是低的边缘/ CS。对于模式3,在/CS的下降和上升边缘上CLK信号通常是高的。既然串行同步时钟的空闲状态为高电平,这里我们选择第二个跳变沿,所以选择 SPI_CPHA_2Edge。也就是CPHA为1
即,我们选择的是模式3(1,1)。

d3a1469e-d3ba-11ed-bfe3-dac502259ad0.png

应用场景:SPI Flash,W25Q32 存储器容量 32Mb (4M x 8),即4M byte

七、CAN

问题一:CAN总结介绍一下?
CAN控制器根据 CAN_L 和 CAN_H上 的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者比居其一。发送方通过使总线电平发生变化,将消息发送给接收方。

问题二:CAN初始化配置步骤?

(1)配置相关引脚的复用功能,使能CAN时钟

(2)设置CAN工作模式及波特率等(CAN初始化环回模式,波特率500Kbps )

(3)设置滤波器

问题三:CAN发送数据格式?
CanTxMsg TxMessage;TxMessage.StdId=0x12; // 标准标识符TxMessage.ExtId=0x12; // 设置扩展标示符TxMessage.IDE=CAN_Id_Standard; // 标准帧TxMessage.RTR=CAN_RTR_Data; // 数据帧TxMessage.DLC=len; // 要发送的数据长度 发送8个字节for(i=0;i八、DMA

问题一:DMA介绍?
直接存储器存取(DMA) 用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。

问题二:DMA传输模式有几种?
DMA_Mode_Circular 循环模式DMA_Mode_Normal 正常缓存模式应用场景:GPS、蓝牙,都是用的循环采集,DMA_Mode_Circular模式。

一个比较重要的函数,获取当前剩余数据量大小,根据设置的接收buff大小减去当前剩余数据量 ,得到当前接收数据大小。

九、中断

问题一:描述一下中断的处理流程?
(1)初始化中断,设置触发方式是上升沿/下降沿/双沿触发。

(2)触发中断,进入中断服务函数

问题二:STM32的中断控制器支持多少个外部中断?
STM32的中断控制器支持19个外部中断/事件请求:
从图上来看,GPIO 的管脚 GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G)分别对应中断线 0 ~ 15。另外四个EXTI线的连接方式如下:● EXTI线16连接到PVD输出● EXTI线17连接到RTC闹钟事件● EXTI线18连接到USB唤醒事件● EXTI线19连接到以太网唤醒事件(只适用于互联型产品)中断服务函数列表:
IO口外部中断在中断向量表中只分配了7个中断向量,也就是只能使用7个中断服务函数。EXTI0_IRQHandlerEXTI1_IRQHandlerEXTI2_IRQHandlerEXTI3_IRQHandlerEXTI4_IRQHandlerEXTI9_5_IRQHandlerEXTI15_10_IRQHandler

十、STM32有几个时钟源?

STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。

①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。

②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。

③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。 

④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。

⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

十一、RTOS的任务是怎么写的?如何切出这个任务?

解答:

一个任务,也称作一个线程。
UCOS有一个任务调度机制,根据任务的优先级进行调度。
一个是硬件中断, 那么系统会将当前任务有关变量入栈,然后执行中断服务程序,执行完成后出栈返回。


另一个是任务之间的切换,使用的方法就是任务调度,每一个任务有自己的栈,顺度也是一样的入栈,然后执行另一个程序,然后出线返回。

并非是每一任务按优先级顺序轮流执行的,而是高优先级的任务独占运行,除非其主动放弃执行,否则低优先级任务不能抢占,同时高优先级可以把放出去给低优先级任务使用的CPU占用权抢回来。所以ucos的任务间要注意插入等待延时,以便ucos切出去让低优先级任务执行。

十二、UCOSII中任务间的通信方式有哪几种?

解答:

在UCOSII中,是使用信号量、邮箱(消息邮箱)和消息队列这些被称作事件的中间环节来实现任务间的通信的,还有全局变量。
信号量:
参看:ucosII 信号量使用总结(举例讲解)
信号量用于:
1.控制共享资源的使用权(满足互斥条件)
2.标志某时间的发生
3.使2个任务的行为同步

应用实例:互斥信号量
作为互斥条件,信号量初始化为1。
实现目标:调用串口发送命令,必须等待返回“OK”字符过后,才能发送下一条命令。每个任务都有可能使用到此发送函数,不能出现冲突!

消息队列:
概念:
(1)消息队列实际上就是邮箱阵列。
(2)任务和中断都可以将一则消息放入队列中,任务可以从消息队列中获取消息。
(3)先进入队列的消息先传给任务(FIFO)。
(4)每个消息队列有一张等待消息任务的等待列表,如果消息列中没有消息,则等待消息的任务就被挂起,直到消息到来。

应用场景:
串口接收程序中的接收缓冲区。
储存外部事件。

十三、项目使用了自定义协议,是什么结构?

解答:

了解过Modbus协议。
结构为:帧头(SDTC)+帧长度+指令+流水号+数据+CRC校验。

十四、uCOSII和Linux的差异?

解答:

μC/OS-II是专门为计算机的嵌入式应用设计的,μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。
linux 免费,安全,稳定,应用范围广,在嵌入式上,服务器上,家用机,都有广泛应用。
μC/OS-II Linux 都适合用在嵌入式上。但μC/OS-II 是专为嵌入式而设计,这样的结果是,运行效率更高,占用资源更少。
linux 都可以用作服务器上,使用率高。linux 虽然不是专门针对服务器而开发,但其源码公开,完全可以修改,使得两者差异不大,最主要的发行版redhat linux 就是在服务器上用得很多的系统。

十五、Git提交代码

问题:Git提交代码过程?

解答:

1、显示工作路径下已修改的文件:

$ git status

2、进入修改文件目录:

$cd -

3、显示与上次提交版本文件的不同:

$ git diff

4、把当前所有修改添加到下次提交中:

$ git add .

5、添加相关功能说明,(第一次提交使用这个)

$ git commit -s

其中还要注明:

Fuction: 修改代码的功能
Ticket: 对应Bug号
注意:每一个文件夹下都要重新提一次。

6、查看提交代码

$ tig .

7、请勿修改已发布的提交记录! (以后提交使用这个)

$git commit --amend

命令模式下:
:x ( 写入文件并退出)

8、推送到服务器

$ git push origin HEAD:refs/for/master

十六、ucosii和ucosiii和freeRTOS比较

问题一:三者比较?

解答:

ucosii和freeRTOS比较:
(1)freeRTOS只支持TCP/IP, uCOSii则有大量外延支持,比如FS, USB, GUI, CAN等的支持。(我们用于tbox要用到CAN,所以选择uCOSii)
(2)freeRTOS 是在商业上免费应用。uCOSii在商业上的应用是要付钱的。
(3)任务间通讯freeRTOS只支持队列, 信号量, 互斥量。uCOSii除这些外,还支持事件标志组,邮箱。
(4)理论上讲,freeRTOS 可以管理超过64个任务,而uCOSii只能管理64个。

ucosii和ucosiii比较:
那么从μC/OS-II到μC/OS-III有哪些不同的地方呢?增加了什么,我们看改动还是很大的。一个是原来只有0~63个优先级,而且优先级不能重复,现在允许几个任务使用同一个优先级,在同一个优先级里面,支持时间片调度法;第二个是允许用户在程序运行中动态配置实时操作系统内核资源,比如,任务、任务栈、信号量、事件标志组、消息队列、消息数、互斥型信号量、存储块划分和定时器,可以在程序运行中变更。这样,用户可以避免在程序编译过程中出现资源不够分配的问题。在资源复用上,也做了一些改进。μC/OS-II中,最多任务数有64个,到了版本2.82以后是256个,μC/OS-III中,用户可以由任意多的任务、任意多的信号量、互斥型信号量、事件标志、消息列表、定时器和任意分配的存储块容量,仅受限于用户CPU可以使用的RAM量。这个也是一个很大的扩展。(问:邵老师,它的这个数是启动时就固定的,还是启动后随便定?)它是配置的时候可以自由定义的,只有你的RAM足够大的话。第四点是增加了很多功能,功能总是越来越多的,大伙可以看一下的。原来这些功能在μC/OS-II里面是没有的。

十七、低功耗模式

问题一:低功耗模式有几种?唤醒方式是什么?

解答:

d3b3f712-d3ba-11ed-bfe3-dac502259ad0.png

十八、物联网的架构

问题一:物联网的架构分为几层?每一层都负责哪些功能?

解答:

分三层,物联网从架构上面可以分为感知层、网络层和应用层,
(1)感知层: 负责信息采集和物物之间的信息传输,信息采集的技术包括传感器、条码和二维码、 RFID射频技术、音视频等多媒体信息,信息传输包括远近距离数据传输技术、自组织组网技术、协同信息处理技术、信息采集中间件技术等传感器网络。感知层是实现物联网全面感知的核心能力,是物联网中包括关键技术、标准化方面、产业化方面亟待突破的部分,关键在于具备更精确、更全面的感知能力,并解决低功耗、小型化和低成本的问题。
(2)网络层: 是利用无线和有线网络对采集的数据进行编码、认证和传输,广泛覆盖的移动通信网络是实现物联网的基础设施,是物联网三层中标准化程度昀高、产业化能力昀强、昀成熟的部分,关键在于为物联网应用特征进行优化和改进,形成协同感知的网络。
(3)应用层: 提供丰富的基于物联网的应用,是物联网发展的根本目标,将物联网技术与行业信息化需求相结合,实现广泛智能化应用的解决方案集,关键在于行业融合、信息资源的开发利用、低成本高质量的解决方案、信息安全的保障以及有效的商业模式的开发。

十九、内存管理

问题一:UCOS中内存管理的方法有哪些?

解答:

系统通过与内存分区相关联的内存控制块来对内存分区进行管理。

动态内存管理函数有:
创建动态内存分区函数OSMemCreate();
请求获得内存块函数OSMemGet();
释放内存块函数OSMemPut();

二十、Ucos中任务状态哪几种?任务状态之间的关系图?

解答:

有5种状态:
睡眠状态、就绪状态、运行状态、等待状态(等待某一事件发生)和中断服务状态。

UCOSII任务的5个状态转换关系:

d3c78be2-d3ba-11ed-bfe3-dac502259ad0.png

二十一、ADC

问题一:简述STM32的ADC系统的功能特性?
(1)12bit分辨率

(2)自动校准

(3)可编程数据对齐(转换结果支持左对齐或右对齐方式存储在16位数据寄存器)

(4)单次和连续转换模式

二十二、系统时钟

问题一:简述设置系统时钟的基本流程?

(1)打开HSE,等待就绪后,设置Flash等待操作。

(2)设置AHB,APB1,APB2分频系数,确定他们各自和系统时钟的关系。

(3)设置CFGR寄存器确定PLL的时钟来源和倍频系数(HSE外部8M*9倍=72MHz)。

(4)使能PLL,将系统时钟源切换到PLL.

二十三、HardFault_Handler处理

问题一:造成原因?
(1)数组越界操作;

(2)内存溢出,访问越界;

(3)堆栈溢出,程序跑飞;

(4)中断处理错误;

问题二:处理方式?
(1)在startup_stm32f10x_cl.s里找到HardFault_Handler的地址重映射,并重新编写,让其跳转到HardFaultHandle函数。
(2)打印查看R0、R1、R2、R3、R12、LR、PC、PSR寄存器。

(3) 查看Fault状态寄存器组(SCB->CFSR和SCB->HFSR)

二十四、TTS语音合成方法

问题一:sim7600 TTS语音使用什么方法?

解答:

(1)使用unicode编码合成声音
AT+CTTS=1,”
6B228FCE4F7F75288BED97F3540862107CFB7EDF”
内容是“欢迎使用语音合成系统”,模块收发中文短信就是unicode编码,所以很容易将短信朗读出来;
(2)直接输入文本,普通字符采用ASIIC码,汉字采用GBK编码。
AT+CTTS=2,”欢迎使用语音合成系统”

二十五、定时器

问题一:已知STM32的系统时钟为72MHz,如何设置相关寄存器,实现20ms定时?

通过SysTick_Config(SystemCoreClock / OS_TICKS_PER_SEC))//1ms定时器


其中:


uint32_t SystemCoreClock         = SYSCLK_FREQ_72MHz;        /*!< System Clock Frequency (Core Clock) */

#define SYSCLK_FREQ_72MHz  72000000

#define OS_TICKS_PER_SEC       1000    /* Set the number of ticks in one second


如果需要20ms则,可以通一设置一个全局变量,然后定初值得为20,这样,每个systick中断一次,这个全局变量减1,减到0,即systick中断20次,时间为:1ms*20=20ms。从而实现20ms的定时。

二十六、优先级

问题一:如果是两个优先级相同的任务怎么运行?

解答:

使获得信号量任务的优先级在使用共享资源期间暂时提升到所有任务最高优先级的高一个级别上,以使该任务不被其他任务所打断,从而能尽快地使用完共享资源并释放信号量,然后在释放信号量之后,再恢复该任务原来的优先级别。

二十七、状态机

问题一:使用的什么状态机?

有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机。

假设状态机的状态转换由下表所示:

d3dba80c-d3ba-11ed-bfe3-dac502259ad0.png


实现:(使用switch语句)


//横着写

void event0func(void)

{

switch(cur_state)

    {

case State0:

             action0;

             cur_state = State1;

break;

case State1:

             action1;

             cur_state = State2;

break;

case State2:

             action1;

             cur_state = State0;

[1] [2]
关键字:STM32F1  ADC系统 引用地址:STM32F1和F4的区别?STM32的ADC系统的功能特性

上一篇:如何入坑STM32 STM32为何能在单片机中脱颖而出
下一篇:关于在Bootloader模式下的应用程序下载

推荐阅读最新更新时间:2024-10-05 19:20

3GSps超高速ADC系统设计解决方案
包含千兆采样率ADC的系统设计会遇到许多复杂情况。面临的主要挑战包括时钟驱动、模拟输入级和高速数字接口。本文探讨了如何才能克服这些挑战,并给出了在千兆赫兹的速度下进行系统优化的方法。在讨论中,时钟设计、差分输入驱动器的设计、数字接口和布局考虑都是十分复杂的问题。本文中的参考设计将采用ADC083000/B3000。 时钟源是高速数据转换系统中最重要的子电路之一。这是因为时钟信号的定时精度会直接影响ADC的动态性能。为了将这种影响最小化,ADC的时钟源必须 具有很低的定时抖动或相位噪声。如果在选择时钟电路时没有考虑该因素,则系统的动态性能在很大程度上将不由前端模拟输入或ADC的质量决定。理想时钟总能 在电平跳变之间保持精确的
[电源管理]
3GSps超高速<font color='red'>ADC</font><font color='red'>系统</font>设计解决方案
不建议使用STM32F1的RTC实现日历功能
有读者问:如何在STM32F1上实现日历功能? 一、关于RTC RTC:Real TimeClock,实时时钟,记录当前时间的计算机时钟。 RTC 不仅应用于个人计算机、服务器和嵌入式系统,几乎所有需要准确计时的电子设备也都会使用。 支持 RTC 的微控制器可用于精密计时器、闹钟、手表、小型电子记事薄以及其它多种设备。 在实际项目中,运用时间戳的地方很多,比如:存储数据、日志消息、系统故障等。 二、STM32的RTC 在所有STM32处理器中,都集成了一个RTC模块,是一个独立的 BCD 定时器 / 计数器。 但是,在STM32F1系列中,RTC模块的功能相对比较简单(也许是最前推出的原因)。其中,一个重要的功能,日历功能
[单片机]
不建议使用<font color='red'>STM32F1</font>的RTC实现日历功能
基于DSP和CPLD技术的多路ADC系统的设计
引言 --- 随着现代电子技术的应用和发展,数字信号处理的内容日益复杂,而ADC是实现从模拟到数字转换的一个必然过程。针对这种情况,利用数字信号处理器和可编程逻辑器件提出了多路ADC系统的设计方法,实现了对动态多路模拟输入信号的采样传输以及处理,简化了电路设计,可编程逻辑器件使得系统的通用性和可移植性得到良好的扩展。系统框图如图1所示。 系统硬件设计   本设计所采用的ADC器件是MAXIM公司的生产的低功耗16位模数转换器(ADC)MAX1162。MAX1162采用逐次逼近型ADC结构,具有自动关断、1.1μs快速唤醒和兼容于SPI/QSPI/MICROWIRE的高速接口,采用+5V单模拟电源,并且具有独立的数字电源引脚,允
[模拟电子]
STM32F0与STM32F1的GPIO是不同的分析
STM32F0与STM32F1的GPIO是不同的,细说比较乱,直接上图。 STM32F1的GPIO基本结构: 从图上看STM32f1输入只有上下拉,输出有开漏和推挽。 STM32F0的GPIO基本结构: 从图上看STM32f0输入只有上下拉,输出有开漏和推挽,而且后面也有上下拉选项。 既然GPIO基本结构都不同了,寄存器操作方式自然不同了。 比如,STM32F1的GPIO控制寄存器的功能被分解给了几个不同的寄存器等。
[单片机]
STM32F0与<font color='red'>STM32F1</font>的GPIO是不同的分析
哈尔滨站-杨松岩:如何实现SAR型ADC系统的设计与调试(1)
逐次逼近型(SAR)模拟数字转换器()是采样速率低于5Msps (每秒百万次采样)的中等至高分辨率应用的常见结构。SAR C的分辨率一般为8位至16位,具有低功耗、小尺寸等特点。
[机器人]
STM32F1与STM32F0在GPIO_TypeDef 寄存器方面的不同
[单片机]
<font color='red'>STM32F1</font>与STM32F0在GPIO_TypeDef 寄存器方面的不同
利用ADC对工业多通道数据采集系统进行信号调理
本应用笔记旨在帮助设计人员在高性能、多通道数据采集系统(DAS)设计中优化工业传感器与高性能ADC之间的连接电路。以电网监测系统为例,本文说明了使用MAX11040 Σ-Δ ADC的优势以及如何选择适当的架构和外围器件,优化系统性能。 引言 许多高端工业应用中,高性能数据采集系统(DAS)与各种传感器之间需要提供适当的接口电路。如果信号接口要求提供多通道、高精度的幅度和相位信息,这些工业应用可以充分利用MAX11040等ADC的高动态范围、同时采样以及多通道优势。本文介绍了MAX11040的Σ-Δ架构,以及如何合理选择设计架构和外部元件,以获得**的系统性能。 高速、Σ-Δ架构的优势 图1所示为高
[模拟电子]
Stm32f1 Keil5调试时候peripherals不显示的解决方法
Stm32f103 Keil5调试时候peripherals没有东西,为空白: 在调试时发现外设是这样:空白 解决方法 在debug view下更改成以下模样 就会有这种效果了
[单片机]
<font color='red'>Stm32f1</font> Keil5调试时候peripherals不显示的解决方法
热门资源推荐
热门放大器推荐
更多
小广播
推荐内容
热门活动
换一批
更多
是德科技直播 | 小探头,大学问,别让探头拖累你的测试结果!
mps评测活动同步开启|MIE1W0505BGLVH样片申请进行中!
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
罗彻斯特有奖调查:元器件日期代码限制是否仍然适用?70+份奖品先到先得!
NI 全联结峰会2024 — 共赢智能测试未来,火热报名中!
设计资源 培训 开发板 精华推荐
  • 【下载】STM32CubeIDE实用技巧之工程联调演示代码
  • 【下载】LAT1448 ARMv8-M架构下MPU的使用技巧
  • 【下载】LAT1414 用DMA方式实现PWM时序保护功能
  • 【下载】LAT1447 电机测速方法以及在STM32中的实现
  • 【下载】LAT1417 TouchGFX实现Home键返回主页
  • 【下载】LAT1421 如何在STM32U5 TF-M工程中添加自定义服务

最新单片机文章
  • 移植OK6410 LCD驱动
    1 本次移植过程选择 linux-2 6 28 lcd驱动为参考移植到 linux-2 6 34 ok6410 开发板上。2 移植过程主要以给内核增加驱动的思想,在 dr ...
  • LINUX 内核移植
    1 下载内核源码linux-2 6 34,解压到工作目录下。2 首先在内核中增加一个 SOC ,到 arch arm mach-s3c64xx 下将mach-smdk6410 c ...
  • 病症:arm启动后应用程序界面显示…
    病症:病症:arm启动后应用程序界面显示不正常(左面有部分未能正常显示)也就是左面少一块区域,右面多一部,原因:lcd显示驱动中场扫描的 ...
  • 中断处理学习笔记
    中断处理如果想使用中断:1初始化A设置源头查看原理图XEINT0 kpROW0 GPN0查看芯片手册使能B设置中断控制器Thischapterdescribesthefunction ...
  • uboot移植
    总体分析:你的目的是什么?你的计划是什么?你会碰到什么问题?你怎么解决的问题?你今天做了该做的事情了吗?你今天能把该做的事情做完吗 ...
  • 第七章 LED将为我闪烁:控制发光二极管
  • Android深度探索(卷1)HAL与驱动开发第七章总结
  • 基于Linux的智能家居的设计(3)
  • # ; @REM !等符号在WINCE6.0下的意义和作用
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

  • 《单片机与嵌入式系统应用》历年文章目录
  • 物联网时代的嵌入式系统机遇
  • 从嵌入式系统视角看物联网
更多开源项目推荐
  • stm32
  • EVAL-AD7767-2EDZ,使用 AD7767-2、24 位、32 KSPS 单通道过采样逐次逼近 ADC 的评估板
  • 使用 FUJITSU 的 MB96F348RS 的参考设计
  • DC1532A-H,LTC2267-12 演示板,12 位,105 Msps,1.8V 双串行 ADC,5MHz
  • 【航顺训练营】CNC控制板调试板
  • CAT4201 350 mA 高效降压 LED 驱动器的典型应用
  • 小巧、快速且高效的比较器为 5.5V 模拟放大再生高达 3MHz 的时钟信号
  • 【RA】按键舵机控制+550443A
  • LT3436 的典型应用 - 3A、800kHz 升压型开关稳压器
  • 使用 Analog Devices 的 LTC3588IDD-1 的参考设计
换一换 更多 相关热搜器件
  •  T428P187K016AH6110T050
  •  AS6212-DK
  •  TSUP5M45SH S1G
  •  MI-P2RV-MXA
  •  4001023132262L9
  •  Y1625931R000T0W
  •  2200BAG150JF34A
  •  240-381RNF25-43PCPBHN
  •  19008-0038
  •  62GB56T1002SE714
更多热门文章
  • Bolt扩大汽车召回,难掩通用和LG化学间的爱恨情仇
  • 小米10推MIUI 12.5.8.0稳定版更新
  • 51单片机-舵机与按键
  • 三星、LG旗下公司竞标特斯拉数十亿美元摄像头模组订单
  • 东芝:供应紧张将至少持续到明年3月
  • 莱迪思FPGA助力奥视威电子最新的演播室监视器设计
  • 实例:使用网络分析仪进行电缆测试
  • 异构集成推动面板制程设备(驱动器)的改变 异构集成(HI)已成为封装技术最新的转折点
  • 单片机的内存分配详解
更多每日新闻
  • Bourns 推出符合 AEC-Q200 标准高压气体放电管 (GDT)
  • Bourns 推出全新薄型、高爬电距离隔离变压器
  • 面向ADAS/AD应用,打造独特的转向手感
  • 智能出行为功能安全创新带来全新的天地
  • 被苹果踢出果链后,Coherent 公司以 2000 万英镑出售旗下晶圆厂
  • 先进制程订单寥寥,消息称三星关闭平泽 P2、P3 工厂三成 4 \ 5 \ 7 nm 产线
  • 新能源电动汽车充电桩应用技术分析
  • 一文读懂|自动驾驶需要的所有传感器
  • 移植OK6410 LCD驱动
  • LINUX 内核移植
更多往期活动
  • 共抗疫情 少出门多学习: 多部TI实用课程奉上, 身体不能在路上就让灵魂在路上
  • ADI和\"西北模电王\"邀您一起下载研读《新概念模拟电路》系列第一本电子书《晶体管》
  • 了解泰克新品P7700探头,答题赢好礼!
  • 995美元Spartan6开发板,花落谁家?
  • 有奖下载:邂逅大师——福禄克全新专家级红外热像仪
  • 劳动五月 晒“现场”,谁是电子工作狂?
  • 有奖直播:艾迈斯欧司朗新型Mira系列全局快门图像传感器
  • 村田在线课堂:移动篇
  • TE有奖活动|如何有效应对当下测试测量领域的挑战
  • 恩智浦开发板交流火热进行中
10月07日历史上的今天
  • 基于STM32F103的485通讯
  • Atmega16中使用modbus协议
  • Atmega8a的采样(查询法)
  • DSP28035_波特率的设置
  • STM32F103与MCGS的通讯
  • 荷兰大学研制出DelFly Nimble,一款可自治的飞行机器人
  • 小萌智能教育机器人亮相博览会,展示了面向未来教育的智能化解决方案
  • Aquanaut:结合ROV和AUV特性的水下机器人,目前处于设计阶段
  • 日本成功研发出能自动在海底移动并捕获生物的机器人
  • TreeRover:自动植树机器人,可实现自动大面积自动植树
厂商技术中心

最能打国产芯

TI 培训

Qorvo 电源技术站

Vicor技术站