1、要使能串口接收中断除了调用BSP_IntEN()外,还应该调用USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);,否则无法进入中断。
2、如果中断服务程序在另一个文件里,且在中断服务程序里发送邮箱消息的话,需要将存放消息的变量定义成全局变量。
3、初始化某一外设时,如果没有对初始化用的结构体的每一个成员均赋值(尽管主观上认为是该成员的配置与自己的应用无关),有可能出错。因为未初始化的变量在内存中的值是不确定的。一个例子是,在利用官方提供的STM32F2系列的1.0库时,官方的ADC3_DMA例程并没有对ADC初始化的结构体的每一个成员进行赋值,导致当把LCD显示注释掉后,尽管初始化时让ADC转换值右对齐,但实际上始终是左对齐。通过观察发现,其没有对ADC_ExternalTrigConv成员初始化,以致于其值不确定,从而导致初始化成了左对齐而不是右对齐。
4、多任务调度后用printf打印浮点型数据有时无法正常打印,具体原因不明。初步猜测是因为浮点型数据的存储采用了专门的寄存器,操作系统没有对该寄存器进行保存。