草庐IT

STM32管脚模拟协议驱动双路16位DAC芯片TM8211

STM32管脚模拟协议驱动双路16位DAC芯片TM8211TM8211是一款国产的低成本双路16位DAC驱动芯片,可以应用于普通数模转换领域及音频转换领域等。这里介绍STM32HAL库驱动TM8211的逻辑,时序和代码。TM8211的功能特性为:TM8211的内部电路功能框图为:TM8211驱动逻辑TM8211支持典型的3.3V供电和5V供电,在驱动后进行电压输出时,需要注意,如以3.3V供电为例,并非是驱动输出0~3.3V的范围,而是半范围,即驱动输出的电压范围为0.825V–2.475V(1/4VDD--3/4VDD)。TM8211的管脚定义为:其中控制管脚为WS,BCK和DIN,LCH和

STM32之MPU6050获取欧拉角

STM32之MPU6050获取欧拉角MPU6050MPU6050特点MPU6050电路图以及框图MPU6050框图MPU6050电路图MPU6050相关寄存器电源管理寄存器1(0x6B)陀螺仪配置寄存器(0x1B)加速度计配置寄存器(0x1C)陀螺仪采样率分频寄存器(0x19)配置寄存器电源管理寄存器2(0x6C)加速度计数据输出寄存器(0x3B~0x40)温度传感器数据输出寄存器(0x41~0x42)陀螺仪数据输出寄存器(0x43~0x48)FIFO使能寄存器我是谁寄存器MPU6050通信协议MPU6050写入寄存器时序MPU6050寄存器读取时序MPU6050获取三轴加速度、三轴陀螺仪以及

STM32 外部中断 led灯闪烁

一、什么是中断? 单片机的中断具有外部中断和内部中断,对于中断的理解很多博主讲解得很好,大家可以去学习一下,中断在单片机的学习过程中是非常重要的内容。我认为中断最为简单的理解就是:暂停当前的工作,去处理别的工作,别的工作处理完成后再回来继续完成当前的工作。假如你正在吃饭,妈妈叫你去收衣服,此时你便要停止吃饭,去收衣服,当衣服收完后,你又回来接着吃饭。外部中断:通过外部给定一个特定的信号,单片机监测该信号,最后做出相应的反应。二、实现效果:通过外部按键(按键连接PA0引脚:“实际控制中最好进行消抖处理”)实现Led灯闪烁一次(LED连接PC13引脚)三、中断程序配置本程序中使用的EXTI0外部中

STM32外设系列—ESP8266(WIFI)

文章目录一、ESP8266简介二、固件库烧录三、常用AT指令四、访问API4.1获取IP地址4.2GET天气信息4.3访问结果展示五、实战项目5.1串口配置5.2检测WIFI模块连接状态5.3发送配置指令5.4解析天气信息六、成果展示一、ESP8266简介ESP8266是嵌入式和物联网开发中常用的模块,它可以单独作为MCU使用,也可以作为一个简单的WIFI模块。ESP8266可以利用串口与单片机进行通讯。利用ESP8266可以访问一些API,获取天气信息或者完成网络授时,也可以连接云平台进行开发。二、固件库烧录有些新买来的ESP01-S并不能支持AT指令,需要我们手动烧录固件库。虽然烧录固件库

STM32与Python上位机通过USB虚拟串口通信

文章目录前言1.查看原理图2.新建工程3.添加代码与烧录4.python代码编写总结问题解决思路前言在详细阅读广大网友的教程之后,我对STM32和Python通过USB通信的流程烂熟于心。尝试用ST公司的NUCLEO-L476RG板子进行简单的回环通信测试,发现还是存在网上无法找到的问题,这个耽搁了几天,期间找到了原因,但没有焊接调试,所以暂时就不以它为例子进行写了。后采用正点原子的F103最小系统板进行demo测试,成功了。流程都是类似,所以这里做一个记录。1.查看原理图新建工程前,我们需要对芯片的USB脚进行查询,通过查看原理图可以看到USB的DP与DM脚对应的芯片引脚,以及DP,DM脚在

【HAL库】STM32CubeMX开发----非阻塞延时实验----SysTick(滴答定时器)中断

STM32CubeMX下载和安装详细教程【HAL库】STM32CubeMX开发----STM32F103/F207/F407----目录前言HAL库有自带的ms级延时函数:HAL_Delay();缺点:这是阻塞延时方式,就是延时期间,什么都不能干,这样很浪费资源。这篇文章主要介绍,利用SysTick(滴答定时器)中断实现非阻塞延时的实验。STM32F407----非阻塞延时实验主要是利用SysTick(滴答定时器)中断中有一个计数变量,每1ms加1,通过获取这个时间数值变量,实现非阻塞延时。相关HAL库函数/***@功能:获取以毫秒为单位的tick值*@参数:无*@返回值:以毫秒为单位的tic

【STM32】STM32G系列使用CORDIC模块加速计算

1.前言STM32G431系列产品内置了CORDIC运算单元,可以用来加速数学计算,如三角函数、取模、开方等。适合大量数据进行相同的运算操作。配合DMA可以大大节省CPU计算开销。2.CubeMX配置使用CORDIC模块无需配置参数,若采用DMA方式则只需配置DMA读写通道,配置如下3.相关代码在代码中对cordic模块进行初始化,主要是完成对CORDIC_ConfigTypeDef结构体的配置。声明结构体变量CORDIC_ConfigTypeDefsCordicConfig;具体配置函数如下:voidcordic_config(void){ sCordicConfig.Function=CO

【STM32】使用RTE ,从 0 开始创建一个 (keil) ARM MDK工程(纯keil,标准库,以STM32F103C8T6为例)

学习相关的基础知识请阅读本专栏其他文章,一定有你想要的。https://blog.csdn.net/weixin_43764974/category_11021363.html本文软硬件:STM32F103C8T6ARMMDK5.38ARMcomplier6ST-Linkv2StdPeriphDrivers(标准库)一、工程结构二、实操三、注意事项3.1我好像少了一些设置?3.2RTE选择附录、代码文章开始前,我想再次说一下:keil、μvision、ARMMDK这几个名词(尽管前面的额文章已经说过好几次了)Keil是一家德国公司,提供了一系列用于嵌入式系统开发的软件工具。其中,KeilMDK

STM32外设芯片驱动学习记录 —— (二) PCA9555 IO扩展芯片驱动开发

目录一、芯片介绍二、Datasheet解读1.硬件说明2.寄存器说明3.通信过程三、驱动代码编写1.软件I2C驱动2.PCA9555芯片驱动函数总结 一、芯片介绍    PCA9555可设置16路输入或输出口,I2C接口,用于IO扩展,3个硬件地址引脚寻址,工作电压:VCC(2.3V至5.5V)。二、Datasheet解读1.硬件说明1)框图 INT:中断输出A0,A1,A2:器件地址SCL,SDA:I2C总线VCC,GND:器件电源供电P07-P00:内部时钟2)引脚说明 2.寄存器说明       1、对应控制寄存器的控制指令如下: 2、硬件地址寻址说明:最多可连接8个芯片 3、器件寄存器

STM32测相位差(根据时间差)

         两路方波输入到stm32的两路定时器通道,通过检测高电平到来的时间差从而算出相位差,公式 相位差=360*频率*(时间差)    如果要测正弦波,可以通过电压比较电路转为方波        定时器初始化及定时器中断代码:voidTIM5_Cap_Init(uint16_tarr,uint16_tpsc){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;GPIO_Ini