随笔分类 - stm32笔记
摘要:初始化和使用都比较简单 void FSMC_SRAM_Init(void) { FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p; GPIO_InitTypeDef GPIO_Init
阅读全文
摘要:一般发生这种情况可能是内存越界操作或堆栈溢出。 排查方法: 1.查看LR的值 首先要查看R14(LR)的值,确定当前堆栈指针是MSP还是PSP。 LR = 0xFFFFFFF9 为主堆栈(MSP),LR = 0xFFFFFFFD为线程堆栈(PSP)。 图中为0xFFFFFFF9,即MSP主堆栈。 2
阅读全文
摘要:如果串口发送了若干个字节后,从一个波特率切换至另一个波特率的时候,应该要延时一会,否则刚刚串口发送的最后一个字节可能会有错误
阅读全文
摘要:空闲接收中断的原理就是在一个字节时间内如果没有收到数据,那么就认为传输结束并触发中断。这个我认为非常依赖于对方的发送时间,如果另一个设备在发送的时候,稍微延时了一点点,就会出现数据接收不完整。建议还是使用定时器模式来接收不定长的数据。
阅读全文
摘要:本文以串口4为例子: 在APB1为72MHz的时钟频率下,是设置不了300波特率的,原因在于 Tx/Rx baud = fck / (16 * reg_value) ,reg_value是写进USART_BRR寄存器里。 比如我们要设置300波特率, reg_value = 72000000/ (1
阅读全文
摘要:1. 下载FreeRTOS https://sourceforge.net/projects/freertos/files/FreeRTOS/ 一般下载V9.0.0版本比较稳定。 2. 解压 我们需要几个文件 1) 在FreeRTOSv9.0.0/FreeRTOS/Source/下的所有C文件(PS
阅读全文