STM32
残酷中进击
这个作者很懒,什么都没留下…
展开
-
STM32F1 定时器 PWM输入捕获两路
__IO u32 TIM4CH3_CAPTURE_UPVAL = 0;//通道3捕获到高电平的时刻__IO u32 TIM4CH3_CAPTURE_DOWNVAL = 0;//通道3捕获到低电平的时刻__IO u32 TIM4CH4_CAPTURE_UPVAL = 0;//通道4捕获到高电平的时刻__IO u32 TIM4CH4_CAPTURE_DOWNVAL = 0;//通道4捕获到低电平的时刻__IO u32 TIM4CH3_HIGHTIME = 0; //通道3捕获总高电平的时间__I.原创 2021-03-04 11:23:32 · 2022 阅读 · 1 评论 -
STM32 KeilRtx Driver_CAN Can的屏蔽位模式 设置
uint32_t nMask = 0x0000001F;uint32_t nId = 0x18;Driver_CAN1.ObjectSetFilter(rx_obj_idx,ARM_CAN_FILTER_ID_MASKABLE_ADD,ARM_CAN_EXTENDED_ID(nId),nMask);当前我传入的掩码低五位为1,代表我只关心低5位的值,即掩码标识符。当前我传入的扩展帧ID为0x18,代表当收到消息后,滤波器会把收到的ID,针对我关心的哪几位,和我传入的ID作对比,即ID标识符,原创 2020-08-06 16:17:14 · 552 阅读 · 0 评论 -
STM32F103 CAN配置和引脚复用
此处采用的是STM32F103C8T6,话不多说,直接上代码。/*CAN RX0 中断优先级配置 */ void CAN_NVIC_Configuration(void){ NVIC_InitTypeDef NVIC_InitStructure; /* Configure the NVIC Preemption Priority Bits */ NVIC_Pr...原创 2019-10-26 17:19:47 · 8380 阅读 · 1 评论 -
STM32F103 8M晶振改16M晶振
我们知道,F103默认的外部晶振是8M,系统时钟频率是72M,但实际项目中,多数情况下可能会采用16M,25M晶振等等,如果不注意,很容易就超频,导致单片机无法正常运转,此处以16M晶振为例,说明一下时钟频率的修改。1.修改stm32f10x.h中HSE_Value的值,8M修改为16M。#define HSE_Value ((uint32_t)16000000) /*!< V...原创 2019-10-26 17:10:07 · 3720 阅读 · 0 评论 -
STM32 USB虚拟串口 小记
1.usb发送存在64字节或者64字节整数倍发送的问题 usb的发送缓存区为4096字节,若发送64字节或者64整数倍字节,当usb存满4096后,会发送一次,剩下的会存在下次的4096里面。 如果要直接发送,在发送64字节之后,需要稍微延时,然后再调用一次发送函数(此时只需发送0字节长度)。...原创 2019-08-29 10:54:29 · 946 阅读 · 0 评论 -
STM32粗略延时,大致精确
考虑到一些情况下,无法使用系统定时或者定时器,而进行的时间计算。STM32F1系列,对于72Mhz来说void my_delay_ms(u32 ms){//对于stm32f1系列 72mhz大致是1ms u16 i = 0; while(ms--) { i = 4050; while(i--); };}void my_delay_us(u32 us){...原创 2019-06-25 20:58:35 · 4745 阅读 · 2 评论 -
STM32F4 DMA
STM32F4有2个DMA,每个DMA控制器有8个数据流,每个数据流有多达8个通道,但是DMA1 控制器 AHB 外设端口与 DMA2 控制器的情况不同,不连接到总线矩阵,因此,仅 DMA2 数据流能够执行存储器到存储器的传输。typedef struct{ uint32_t DMA_Channel; //选择通道 uint32_t...原创 2019-04-02 17:35:07 · 7110 阅读 · 0 评论 -
STM32F4 SPI NSS硬件模式配置及使用
我们知道,SPI_NSS有两种模式,SPI_NSS_Hard和SPI_NSS_Soft。SPI_NSS_Hard,硬件自动拉高拉低片选,在速率上是远比软件方式控制要高的,缺点是当STM32为主设备时,同一个SPI上面只能接一个从设备。这也就限制了SPI通信设备的数量。SPI_NSS_Soft,软件控制,GPIO控制片选拉高拉低,优点是一个SPI上面可以挂多个设备。这也是使用较多的方式。所以不再...原创 2019-01-17 16:33:34 · 7620 阅读 · 3 评论 -
关于STM32F407 一次DMA中断事件进入两次中断
关于STM32F407 一次DMA中断事件进入两次中断我这里用的是stm32f407 spi2的dma接收中断,原理是一样的。经过测试,dma使能不会触发中断,但是即使没有数据传输事件完成,但是使能之后,单独运行关闭使能语句,会改写中断传输标志位,从而触发一次中断,这也就是为什么在传输事件触发中断后会再一次触发中断,建议在DMA_Cmd(DMA1_Stream3,DISABLE);后务必要加...原创 2018-12-27 17:26:05 · 6024 阅读 · 0 评论 -
STM32F103 USART1串口重映射功能的实现
STM32F103C8 USART1串口重映射实现方法代码我们知道,F103的usart1串口是PA8 PA9的复用功能,我们在使用的时候直接配置这两个引脚,配置复用即可,但有时,在实际工作中,也会采用串口的重映射功能。由图可知,usart1是PB6 PB7的重定义功能,也就是重映射功能,话不多说,直接上代码。static void Gpio_Config1(void){ GPIO_In...原创 2018-12-05 16:21:52 · 11711 阅读 · 10 评论