logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

硬件SPI和软件模拟SPI在配置方面的一点区别

本文对比了STM32中硬件SPI与软件模拟SPI在W25Q系列Flash通信中的实现差异。硬件SPI利用专用外设,配置复杂但效率高;软件模拟则通过GPIO手动控制时序,灵活性强且可任意选引脚。两者接线一致,均遵循“主机MOSI接从机DI,MISO接DO”原则。硬件版本依赖SPI外设寄存器操作,软件版本通过位操作模拟时序,需精确延时。关键区别在于:硬件版由外设自动处理电平翻转和收发,软件版需手动控制

文章图片
#单片机#stm32#c语言
关于STM32f103C8T6的UART坑

使用USB-TTL模块进行UART调试时,未采用默认PA9/PA10引脚,导致无输出。经排查,程序未进入循环,问题出在GPIOB_Init函数。通过屏幕计数定位至PB5初始化异常,经查为JTAG占用需关闭才能重映射,且每次烧录需重新上电,操作繁琐。最终改用默认PA9/PA10引脚,问题解决,实现稳定串口通信。

文章图片
#stm32#嵌入式硬件#单片机
LeetCode算法学习之盛最多水的容器

该代码实现了容器盛水问题的双指针解法。原始版本使用ArrayList存储所有可能的容量值,最后遍历列表找出最大值,空间复杂度较高。优化版本直接在循环中实时计算并更新最大容量maxArea,省去了存储中间结果的步骤,使空间复杂度降至O(1)。解题思路是通过双指针从数组两端向中间移动,每次移动高度较小的指针,并计算当前容量。优化后的代码不仅更简洁,还减少了内存使用,直接在比较过程中维护最大值,避免额外

文章图片
#算法#leetcode#学习
C++中容器模版迭代器踩坑点

C++ STL迭代器使用常见问题及解决方法:在使用容器迭代器进行循环遍历后,若想再次打印全部数据需重置迭代器位置。常见错误是直接使用循环后的迭代器作为起点,导致数据打印不完整。解决方法是在每次遍历前执行iterator it = lst.begin();重新初始化迭代器。这能确保从容器起始位置开始遍历,避免因迭代器位置后移造成的数据遗漏问题。

文章图片
#c++#开发语言
到底了