STM32单片机开发技术
文章平均质量分 85
卖水果的
这个作者很懒,什么都没留下…
展开
-
低内存芯片的软件MMU方案
在51单片机编程中,经常出现内存不够用的情况。但是如果使用它的外扩RAM,又必须占用很多引脚,且接线复杂。如何用少量的引脚,对51单片机进行存储器扩展呢?首先我们可以接一个IIC的EEPROM或者Flash等其他的串口存储器。但光是这样,并不能较好的解决问题:因为这种存储器无法当做RAM使用。一般只适合存储一些参数,文件之类的。所以我们还需要继续做一些研究。我们知道,51单片机RAM是128Bytes.有的芯片是256Bytes.大了一点点,但终究是杯水车薪。我们可以外接一个1M的Flash存储器。原创 2021-05-25 14:35:00 · 644 阅读 · 0 评论 -
Linux设备驱动思想在STM32编程中的应用
这几天看了一下Linux设备驱动,发现这套思想其实也可以用在普通的单片机编程上。这种思想较好的分割了驱动层和应用层的任务,方便分层开发。以前,我们开发STM32驱动的时候,会给设备写一套函数来控制它。假设现在有一块单片机开发板,外接设备UART和LCD。我们会这样写函数-----------------UART驱动--------------void UART_Init();int UART_Send(const char *str,int size);int UART_Rec(ch原创 2021-04-17 09:35:31 · 906 阅读 · 2 评论 -
STM32进入HardFault的调试方法
STM32进入HardFault的调试方法我们在设计STM32程序时,经常由于内存越界等,使得程序意外进入了HardFault中断。但我们一时半会又不知道,这个中断,究竟是代码运行到哪里,才触发的。常规的做法,我们只能在线调试,一步步寻找异常点,但由于发生异常的时机是不确定的,有可能在线调试的时候就不出现异常了,所以相当头疼。但本文介绍一种方法,可以直接定位到异常点,节省排查问题的时间。这个方法的关键是,由于STM32中断前会由硬件保护现场,这个所谓的“现场”正是中断前程序运行的位置。我..原创 2021-02-04 21:34:23 · 4094 阅读 · 4 评论