2013/4/18
1、在调试和写程序是注意,存在这样一种寄存器,当对某位进行读操作时,可能会清除一个标志位,例如I2C总线中的各种事件标志位。SB,ADDR等。
2、GPIO端口配置为开漏输出时可以实现准双向IO口的功能,具体实现方式做下试验。应用是,在用软件模拟I2C,SPI时不用来回切换IO的输入输出模式。
3、自己写的UART_Printf函数也尽量不要在中断中使用,容易出现错误,猜测可能的原因是中断触发太快,而Printf函数中的可变参数运行时间不确定,可能发生重入的错误,从而锁死中断。I2C调试中出现的莫名其妙问题总结。
4、为了降低功耗可以将GPIO的速度降到合适的大小,一般而言,串口2M,I2C 10M,SPI 50M就能满足要求。好处是可以降低功耗和EMI。
2013/4/27 星期六 青岛佳奇电子 串口驱动问题
stm32
串口缓冲区加中断可以有效的提高MCU的效率,但是要处理好中断开始触发条件和标志位的清除工作。
周期性串口触发事件为了不覆盖掉终端中填入的数据要加上
if(USART_GetFlagStatus(UART4,USART_FLAG_TXE) == SET)
{
//Code;
}
来检测 数据寄存器是否有数据stm32 串口在时能TE位后 会发送一帧空闲帧,可以通过软件来避免 while()等待标志位的方法。不过没有具体实验。
文章评论(0条评论)
登录后参与讨论