推荐阅读最新更新时间:2024-03-16 16:20
【STM32】HAL库 STM32CubeMX教程十二---IIC(读取AT24C02 )
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用。 但是在我们的HAL库中,对硬件IIC做了全新的优化,使得之前软件IIC几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处 这可能是目前关于STM32CubeMX的硬件iic 讲的最全面和详细的一篇文章之一了 所用工具: 1、芯片: STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 5、II
[单片机]
STM32接收中断服务函数打印函数会造成错误
在中断服务函数里面,千万不能用打印函数,因为打印函数的时间太长,会使中断服务函数长时间没有退出去,将会造成一些想不到的结果。 例如在串口中断中: void USART2_IRQHandler(void) { unsigned char res; uint16_t uhdata; uint16_t uhMask = (&huart2)- Mask; //if(USART2- ISR&(1 5))//????? if(((READ_REG((&huart2)- Instance- ISR) & USART_ISR_RXNE) != RESET) && ((READ_REG((&huart2)- Instan
[单片机]
stm32如何实现PWM输出及周期内ADC采样
1.TIM1 通道一设置为PWM模式, 通道3设置为Timing模式,同时允许TIM_IT_Update和TIM_IT_CC3更新中断; 2.stm32的ADC有三种方法:(采样方法三 TIM8+ADC1+DMA2) A、使用定时器中断每隔一定时间进行ADC转换,这样每次都必须读ADC的数据寄存器,非常浪费时间! B、把ADC设置成连续转换模式,同时对应的DMA通道开启循环模式,这样ADC就一直在进行数据采集然后通过DMA把数据搬运至内存。但是这样做的话还得加一个定时中断,用来定时读取内存中的数据! C、使用ADC的定时器触发ADC转换的功能,然后使用DMA进行数据的搬运!这样只要设置好定时器的触发间隔,就能实现ADC
[单片机]
STM32的中断优先级详解
中断优先级设置步骤: 系统运行后先设置中断优先级分组。在主函数调用函数: void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); 整个系统执行过程中,只设置一次中断分组。 针对每个中断,设置对应的抢占优先级和响应优先级: void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);//配置过程 NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口1中断,此处可改为任何有中断功能
[单片机]
stm32用什么软件编程 stm32软件推荐
stm32是嵌入式单片机,有着高性能、低成本、低功耗、可裁剪的特点。相信许多萌新小伙伴还不知道stm32用什么软件编程好,下面就来介绍一下stm32编程软件。 1.Keil MDK stm32单片机需要编程,目前keil是最广泛的STM32单片机编程环境,优点是界面友好、易操作、用户体验好,很受大家的欢迎。 2.STM32CUBE STM32CUBE是一款图形配置软件,能够查看每个单片机的引脚情况、复用功能情况、片上资源,功能很清晰。缺点是不能支持代码生成。 3.Altium Designer Altium Designer是一款原理图和PCB设计软件,我们能够根据自己的需求来设计PCB做板子调试产品。 如果是学5
[单片机]
stm32 keil实现串口printf输出中文字符
添加如下代码,可以GNUC的方式实现 #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker- Libraries- Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */ int main() { whil
[单片机]
STM32电源管理系统浅谈
电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。 STM32的电源管理系统主要分为: 1、备份域 2、调压器供电电路 3、ADC电源电路 备份域电路 STM32的备份域包括LSE振荡器、RTC、备份寄存器及备份SRAM这些器件,这部分的电路可以通过STM32的VBAT引脚获取供电电源,在实际应用中一般会使用3V的钮扣电
[单片机]