HK32F030C8硬件SPI踩坑与填坑
本帖最后由 sp@cai 于 2020-10-30 16:34 编辑我们公司有一款产品原先用的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);
在HK上的结果:
可见DR刚写入马上读SPI_SR_BSY标志,结果是空闲!{:sweat:}
试了几个方法,都不太理想,最后将while((SPI1->SR & SPI_SR_BSY) > 0);改为while((SPI1->SR & (SPI_SR_BSY | SPI_SR_FTLVL)) > 0);问题解决!
正确时序:
不知道各位有没有遇到过这个问题?最后是怎么解决的呢?
不理解为什么(SPI_SR_BSY | SPI_SR_FTLVL)) 这个就可以, 你与上SPI_SR_FTLVL 这个和原来SPI1->SR & SPI_SR_BSY)没区别吧 本帖最后由 sp@cai 于 2020-11-24 17:33 编辑
HSXP063 发表于 2020-11-1 13:02
不理解为什么(SPI_SR_BSY | SPI_SR_FTLVL)) 这个就可以, 你与上SPI_SR_FTLVL 这个和原来SPI1->SR & SP ...
实践测试就是这样,我使用最高主频运行的,可能是运行速度太快,航顺MCU的SPI_SR_BSY标志更新慢了一点,而SPI_SR_FTLVL更新快。没有试过降低主频测试,你可以试试。
有些坑总需要有人去踩,厂家才能进步。 哈哈哈,楼上的人说的太经典了,确实是这样的,多踩坑厂家才能进步 一边踩坑一边填坑,楼主收获不小啊 您好!我司有代理一款CKS-中科芯的国产MCU,可以PTP软硬兼容STM32F103,030,031,051,072系列相关MCU,需要样品及技术支持可以联系我,张生: 158 1409 1680,(仅支持终端,供货稳定),感谢支持
sp@cai 发表于 2020-11-24 17:23
实践测试就是这样,我使用最高主频运行的,可能是运行速度太快,航顺MCU的SPI_SR_BSY标志更新慢了一点,而 ...
估计是航顺MCU的SPI_SR_BSY是以SPI_CLK时钟更新的 steelen 发表于 2020-12-2 12:09
估计是航顺MCU的SPI_SR_BSY是以SPI_CLK时钟更新的
这个只有厂家知道了。这个问题在大部分的应用是没有影响的,只有在单次片选只发送一个字节数据时才会出现。 软件模拟吧,我认为软件模拟也是可以的。
现在国产MCU不论是芯片还是软件上都是仿隔壁家的,没有自己的创新,有些问题可能厂家自己都不知道,只有等用户去找bug。 yangxiaor520 发表于 2020-12-9 08:23
现在国产MCU不论是芯片还是软件上都是仿隔壁家的,没有自己的创新,有些问题可能厂家自己都不知道,只有等 ...
国外芯片也很多BUG,看一下意法的STM32系MCU的勘误表,填了很多坑。
国内的“后发优势”反而没有那么多BUG。
国产MCU虽然很多“仿”制,但是有些厂家一直尝试着创新,看着像是一样的,其实有些细节方面也加入了自己的特色。 嵌入小菜菜 发表于 2020-12-8 21:40
软件模拟吧,我认为软件模拟也是可以的。
软件模拟的效率太低,而且数据速率也做不高。 比如我使用的TFT屏,若速率低了画面不流畅。 感谢分享,不错的帖子,很棒。
感谢楼主的分享,我好像也入坑了。哈哈
踩的坑越多,成长得越快啊。 我们是航顺原厂技术支持,麻烦留一个微信,我们确认一下。 请告知一下,HSE+PLL还是HSI+PLL, 工作频率是72MHz吗? SPI 工作频率呐? 感谢楼主的分享,这个技术贴收藏了。
wangjunzhuyu 发表于 2020-12-16 17:14
请告知一下,HSE+PLL还是HSI+PLL, 工作频率是72MHz吗? SPI 工作频率呐?
使用HSI+PLL,主频16MHz,SPI频率8MHz