原创 调试笔记

2013-4-27 17:14 800 6 6 分类: MCU/ 嵌入式

 

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()等待标志位的方法。不过没有具体实验。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /3 下一条