1、芯片的中断口最好接一个下拉电阻,否则当中断管脚悬空时,管脚上的浮空电平很容易使芯片进入中断。
2、开启串口中断前可以通过读取数据寄存器来清除串口中断标志位。芯片手册上也是这么推荐的。如果直接通过清串口接收中断标志位,然后再开启串口接收中断,则串口出现异常,会不停进中断,但是不是由接收中断引起的。
3、使用外设时,同时要配置外设对应的IO口,使该IO口的状态符合外设数据传输的需求。如:作为中断,则配置为上拉输入或下拉输入。当该IO口作为中断输入时,同时也能通过读取数据寄存器来读取该IO线上的电平。
4、中断的使用及具体的操作必须慎之又慎。必须仔细规划,否则不仅程序显得混乱,而且不安全,极易产生错误。
5、若需要使用外设,首先在RCC里面使能该外设的时钟。然后配置该外设,若用到DMA,首先要使能DMA总线的时钟。若使用到中断,则使能外设的中断,并在NVIC中使能该中断。
6、采用DMA发送串口数据,当DMA传输完成标志位置位时,内存到串口的数据传输完成,但是串口中还有2个数据未发送,其中一个数据正在发送寄存器发送,另一个数据正在数据寄存器中。所以,不能通过DMA传输完成标志位来作为串口数据发送完成的依据。
7、有关清除缓冲区域的。在IAR编译器最高级优化的状态下
for(temp_clean = 0; temp_clean < temp_baochang; temp_clean++)
{
packet_handler->mingling_buff[temp_clean] = 0;
}
for(temp_clean = temp_b