我们公司有一款产品原先用的STM32F030C8,出货很久了,因某些原因改用了国产航顺的HK32F030C8。结果发现显示屏无显示,程序是一样的,于是接逻辑分析议看看。发现下面这段代码在STM上没问题,但在HK上有问题:
while((SPI1->SR & SPI_SR_BSY) > 0);
My_GPIO_WriteLow(DisplayCS_P);
SPI1->DR = 0x11;
while((SPI1->SR & SPI_SR_BSY) > 0);
My_GPIO_WriteHigh(DisplayCS_P);
HK32运行的结果:
可见DR刚写入马上读SPI_SR_BSY标志,结果是空闲!
试了几个方法,都不太理想,最后将while((SPI1->SR & SPI_SR_BSY) > 0);改为while((SPI1->SR & (SPI_SR_BSY | SPI_SR_FTLVL)) > 0);问题解决!
正确时序:
不知道各位有没有遇到过这个问题?最后是怎么解决的呢? 

 
					
				
 
			
			
			
						
			 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

