推荐阅读最新更新时间:2024-11-10 11:09
用STM32内置的高速ADC实现简易示波器
做一个数字采样示波器一直是我长久以来的愿望,不过毕竟这个目标难度比较大,涉及的方面实在太多,模拟前端电路、高速ADC、单片机、CPLD/FPGA、通讯、上位机程序、数据处理等等,不是一下子就能成的,慢慢一步步来呗,呵呵,好歹有个目标,一直在学习各方面的知识,也有动力:)由于高速ADC涉及到采样后的数据存储问题,大量的数据涌入使得单片机无法承受,因此通常需要用外部高速RAM加CPLD配合,或者干脆用大容量的 FPGA做数据存储处理等,然后通知单片机将数据发送出去。这部分实在是难度比较大,电路非常复杂,自己是有心无力啊,还得慢慢地技术积累。。。 正好ST新推出市场的以CORTEX-M3为核心的STM32,内部集成了2个1Msps 12
[单片机]
【菜鸟入门】stm32 之 iic
纠结了两天,终于重新开始写了,这两天一直卡在硬件iic上,由于硬件iic是比较难啃的一块骨头,问题一大堆,明明感觉配置好,测试时,一会出这个问题,一会出那个问题,哎,说多了都是泪。。。。 最后木有办法了,总不能吊死在一棵树上吧,然后就写了个模拟的iic的,由于对iic研究和应用的比较多(我们实验室的设备都是iic通信的,所有设备的驱动都是我来写的),所以在搞这个的时候得心应手,一个小时就把所有的搞定了,有花了1个小时把eeprom(at24c02)调通; 我大致测了下,我的板子上的eeprom电路类似这个: 所以我要做的是就是把PB6配置称时钟线SCL,PB7配置成数据线SDA 这里我们再配置输出的时候,要把管脚配
[单片机]
STM32之外部中断 EXTI
STM32中断控制线支持19个外部中断/事件请求,每个中断都有对应状态位和独立的触发与屏蔽设置。STM32F103的19个外部中断为: 线0-15:对应GPIO口的输入中断。 线16:连接到PVD输出(掉电检测,掉电时可立即保存重要数据作用)。 线17:连接RTC闹钟事件。 线18:连接到USB唤醒事件 STM32的每个IO口都可以作为外部中断源的输入端,而IO口使用的中断线只有16根,且引脚GPIOx.0~GPIOx.15(x=A~G)分别对应中断线0-15.这样每个中断线对应了7个IO口。如线0对应引脚GPIOA.0/GPIOB.0/GPIOC.0/GPIOD.0/GPIOE.0/GPIOF.0/GPIOG.0,但是每
[单片机]
stm32启动文件选择
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。 互联型产品是指STM32F105xx和STM32F107xx微控制器。 - startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices - startup_stm32
[单片机]
STM32微控制器的工作原理和应用 STM32微控制器的命名规则
STM32微控制器的工作原理和应用 STM32微控制器是一种基于ARM Cortex-M内核的高性能、低功耗、低成本的微控制器。它广泛应用于各种嵌入式系统,包括工业控制、消费电子、医疗设备、汽车电子等领域。 STM32微控制器的工作原理是基于ARM Cortex-M内核的,它可以区分为不同型号的Cortex-M0、Cortex-M3、Cortex-M4和Cortex-M7等系列。这些内核提供了高性能、低功耗和丰富的功能,支持多种存储器接口和总线结构,具有高度可扩展性。STM32微控制器集成了丰富的外设模块,用于处理各种输入和输出接口。常见的外设包括通用输入输出(GPIO)、定时器(TIM)、串行通信接口(USART、SPI、I
[单片机]
最精简的stm32编码器程序
#define ROTATE_A PAin(2) #define ROTATE_B PAin(3) s16 DATA=0; void EXTI2_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line2) != RESET) { if(ROTATE_A!=ROTATE_B) { DATA++; } else DATA--; EXTI_ClearITPendingBit(EXTI_Line2); } } void main(void) { SystemInit(); delay
[单片机]
STM32 USART 普通串口应用,调试总结
配置STM32L151CBT6,在普通串口模式。当初没有好好看数据手册,只是看着别人的例子写出来一个程序,虽然效果出来了,但不明白其中一些问题的道理,带着这些问题,问了同事,得到的答案,确实最低级的错误。这说明看数据手册的重要性。看程序和问题如下 程序刚初始化时, //设置为发送使能,接收使能 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //值开启接收中断。 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); 在接收到数据后,把手册拷贝到发送缓冲区,然后开启发送 void USART_Start_
[单片机]
STM32之如何封装自己的lib库
似乎stm32刚开始出来的时候就是用的l.ib库,后来就开源了。 网上看了一些网友做的lib库,自己也弄了一下,其实也挺简单。 以下封装lib库都是基于stm32的3.0固件库 1、打开一个工程,将除固件库以外的其他文件删掉,如下: 2、在option下进行设置,如下: 来个特写: 3、将编译好的lib库拷贝到另外一个工程,添加进去,并将工程下库的c文件全部删除(h文件必须保留) 4、编译,如下: 注意,只需将stm32_lib_30.lib文件add进去就可以了,没必要在主文件里面include之类的。 否则编译的时候就会出错(重复包含),如下:
[单片机]