推荐阅读最新更新时间:2024-03-16 16:14
STM32的SPI
通常SPI通过4个引脚与外部器件相连: ● MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。 ● MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。 ● SCK:串口时钟,作为主设备的输出,从设备的输入 ●NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。从设备的NSS引脚可以由主设备的一个标准I/O引脚来驱动。一旦被使能(SSOE位),NSS引脚也可以作为输出引脚,并在SPI处于主模式时拉低;此时,所有的SPI设备,如果它们的NSS引脚连接到主设备的NSS引脚,则
[单片机]
stm32定时器外部时钟3使用外部时钟源模式2进行定时的步骤
stm32中的通用定时器的计数时钟有三种,内部时钟、外部时钟源、内部触发输入这三种,其中内部时钟是大家都比较常用的,也是在应用中比较多的,我们现在主要来讲一下外部时钟源的模式2外部时钟模式2:外部触发输入。 编程步骤: 配置TIM3_ETR引脚为输入引脚PD2,硬件上需要将脉冲连接到该引脚,我这里是使用6.78MHz的晶振 配置定时器3:包括使能定时器3对应的时钟引脚,配置定时器3的周期、预分频参数 因为我们使用了定时器3中断,所以需要给定时器设置优先级,在timerx_nvic_init()中的关于TIM3部分操作 将SMCR中的ETF、ETPS、ETP和ECE进行配置 执行完了以上步骤之后还需要操作triggle中断
[单片机]
STM32八种IO口模式区别
STM32八种IO口模式区别 (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 复用推挽输出 以下是详细讲解 (1)GPIO_Mode_AIN 模拟输入 即关闭施密特触发器,将电压信号传送到片上外设模块(不接上、下拉电阻) (2)GPIO_Mode_IN_FLOATING 浮空输入 浮空输入状态下,IO
[单片机]
STM32 UART的使用过程
1、使用UART前必须启动相应的外设时钟,其主要用到固件库的RCC_APBnPeriphClockCmd函数。 使能UART1:使用RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE) 使能UART2:使用RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2 , ENABLE) 2、使用中断进行UART操作的需要配置NVIC,设置中断优先级。如: /* Configure the NVIC Preemption Priority Bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
[单片机]
STM32 IO寄存器操作
STM32的IO端口有八种模式: 1、输入浮空 5、开漏输出 2、输入上拉 6、推挽输出 3、输入下拉 7、推挽复用 4、模拟输入 8、开漏复用 每个IO口都有七个寄存器来控制: CHL、CHR :端口配置寄存器(32位) IDR、ODR :数据寄存器(32位) BSRR :置位/复位寄存器(32位) BRR :复位寄存器(16位) LCKR :所存寄存器(32位) 其中,比较常用的IO端口寄存器为CRL,CRH,IDR,ODR 低配置寄存器CRL: 该寄存器复位值为0x4444 4444。即
[单片机]
STM32入门学习之USART中断(STM32F030F4P6基于CooCox IDE)
#include stm32f0xx.h #include stm32_lib/inc/stm32f0xx_rcc.h #include stm32_lib/inc/stm32f0xx_gpio.h #include stm32_lib/inc/stm32f0xx_usart.h #include stm32_lib/inc/stm32f0xx_misc.h #include delay.h int main(void) { //1、使能时钟 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2P
[单片机]
stm32 3.5固件库带sdio版本V4.5.0 bug修改
写的很详细 1:SD_WaitReadOperation()函数或者SD_WaitWriteOperation()函数进入死循环 原因:数据传输错误导致传输中断,无法满足退出等待的判断条件。 代码分析: SD_Error SD_WaitReadOperation(void) { SD_Error errorstatus = SD_OK; while ((SD_DMAEndOfTransferStatus() == RESET) && (TransferEnd == 0) && (TransferError == SD_OK)) {} if (TransferError != SD_OK) { return(Trans
[单片机]
基于STM32的远程温控系统设计
温度控制是工业控制的主要对象之一,常用的温控数学模型是一阶惯性加上纯滞后环节,但其随着加热对象和环境条件的不同,会存在着较大的差异。因为温控对象这种较为普遍的含有纯滞后环节的特点,容易引起系统超调和持续的振荡,温度控制对象的参数会发生幅度较大的变化。因此无法采用传统的控制方法(如常规的PID控制)对温度进行有效的控制,而智能控制不需要对象的精确数学模型就可以对系统实施控制 。温度控制多采用由单片机系统来实现温度控制,其缺点是远程控制系统复杂,可靠性差,特别是当控制点较多、距离较远时,采取总线方式的通讯出错概率较高,影响到温度的控制精度 。 目前,多家厂商(如日本导电、岛通)均推出精度可达0.1级的基于PID算法的智能型温控仪
[工业控制]