推荐阅读最新更新时间:2024-03-16 15:11
stm32变量的定义
一、最近在玩stm32,用库(V3.5.0)开发,被 stm32的变量定义搞的晕头转向,决心将其弄清楚。 在 stdint.h 文件里,我们可以清楚的看到: typedef signed char int8_t; typedef signed short int int16_t; typedef signed int int32_t; typedef signed __int64 int64_t; typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned
[单片机]
STM32高级定时器1控制伺服直流电机
简介:使用STM32也有很多年了,现在毕业临近了,就想写写,做做记录也希望能帮助到可以帮助的人。STM32定时器有很多的用途,我也不一一举例,我最常用的就是输出PWM,定时器,输入捕获以及编码盘模式等等。 第一 : 用STM32高级定时器1控制伺服直流电机 /////////////////////////////////////////// //定时器1PWM初始化 共4路可变掌控比///////// //输入参数PWM1/2/3/4掌控比参数30000-60000// ////////////////////////////////////////// void TIM1_PWM(unsigned in
[单片机]
stm32 hal 库读写字节代码
void Single_WriteI2C(uint8_tREG_Address,uint8_t REG_data)//写入一个字节的代码 { uint8_t TxData = {REG_Address,REG_data}; while(HAL_I2C_Master_Transmit(&hi2c1,0xa6,(uint8_t*)TxData,2,1000)!= HAL_OK) { if (HAL_I2C_GetError(&hi2c1) !=HAL_I2C_ERROR_AF) { Error_Handler(); } }
[单片机]
STM32 keyboard USB键盘功能的实现
下面编写下USB键盘的程序,依然在CustomHID工程上修改。 依旧最先修改的是usb_desc.c文件。我们从设备描述符开始讲述。 设备描述符需要修改下bMaxPacketSize(最大包长度)域为0x08,因为被本次的工程最大通讯长度就是8字节,正好符合USB规范,所以这里改成0x08,还要注意在usb_prop.c的DEVICE_PROP Device_Property结构体里注册的最大长度也要是0x08,与设备描述符的要相同(我们在下文说到)。这里最好还要修改下PID和VID的域的值,以防该PID和VID对应的设备已经在电脑里有了驱动而导致功能不正常。 /* USB标准设备描述符*/ const uint8_t Keyb
[单片机]
STM32开发笔记77: 内部看门狗长延时的产生
单片机型号:STM32L053R8T6 开发笔记STM32开发笔记45:看门狗驱动程序的移植介绍了看门狗驱动程序的基本设计方法。今天项目中看门狗的延时时间达到10秒,则实际运行效果只有3秒。 以下是看门狗最大延时时间的设置函数: void CIwdg::SetMaxRefreshInterval(uint8_t u8_second) { this- hIwdg.Instance = IWDG; this- hIwdg.Init.Prescaler = IWDG_PRESCALER_64; this- hIwdg.Init.Window = 4095; #if defined STM32F091xC || defi
[单片机]
STM32通用定时器的PWM
脉冲宽度调制(PWM),是英文 Pulse Width Modulation 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出。 PWM输出模式 STM32的PWM输出有两种模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位确定的( 110 为模式1, 111 为模式2)。模式1和模式2的区别如下: 110:PWM模式1-在
[单片机]
STM32如何实现W25X16的汉字字库存储
系统中使用过多的汉字会出现芯片容量不够用的问题,可将数据存储在外部FLASH中,在需要使用时进行调用即可。本文是通过STM32串口1实现对W25X16的汉字字库存储。软件层面,配置串口1和SPI1即可,程序初始化后,在对W25X16进行写之前,必须先擦除,可以一个字节、一页、一扇区、一块以及整片擦除。写字库前,我们用整片擦除方式,如下: 整个程序中,关键在于串口接收中断函数的编写,如下: u32 WriteAddress=0; void USART1_IRQHandler(void) { u8 Res; if(USART_GeTITStatus(USART1,USART_IT_RXNE)!=RESET) { USART_Cle
[单片机]
STM32的ADC的采样周期确定
采样频率的确定 1.首先确定ADC 的时钟,这里需要看你的RCC的设置。在采用固件库的基础上,设定ADC的采样频率相对来说是很容易的。 (1)由时钟控制器提供的ADCCLK 时钟和PCLK2(APB2 时钟)同步。CLK 控制器为ADC 时钟提供一个专用的可编程预分频器。 (2) 一般情况下在程序 中将 PCLK2 时钟设为 与系统时钟 相同 RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); (3)采样时间和转换时间 ADC 使用若干个ADC_CLK 周
[单片机]