新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM8 SPI 例程 通信出錯(cuò)

STM8 SPI 例程 通信出錯(cuò)

作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
這個(gè)STM8SPI通信也夠奇葩的,跟STM32有大區(qū)別。光判斷發(fā)送空和接收空的標(biāo)志還不行,還必須判斷忙標(biāo)志位,而且讀數(shù)的時(shí)候要等忙標(biāo)志完畢才能讀,廢話少說(shuō)上代碼:

這是一段發(fā)2字節(jié)收2字節(jié)的代碼,注意如果第二個(gè)字節(jié)接收才有效的話,也需要發(fā)送第二個(gè)字節(jié)才能提供時(shí)鐘進(jìn)行接收:

本文引用地址:http://butianyuan.cn/article/201611/317109.htm
  1. GPIO_WriteLow(GPIOA,GPIO_PIN_3);
  2. while(SPI_GetFlagStatus(SPI_FLAG_TXE)==RESET){}
  3. SPI_SendData(0x80|0x75);
  4. while(SPI_GetFlagStatus(SPI_FLAG_BSY)==SET){}
  5. while(SPI_GetFlagStatus(SPI_FLAG_RXNE)==RESET){}/*¸Ã×Ö½Ú¶ªÆú*/
  6. ret1=SPI_ReceiveData();
  7. while(SPI_GetFlagStatus(SPI_FLAG_TXE)==RESET){}
  8. SPI_SendData(0x75);
  9. while(SPI_GetFlagStatus(SPI_FLAG_BSY)==SET){}
  10. while(SPI_GetFlagStatus(SPI_FLAG_RXNE)==RESET){}
  11. ret2=SPI_ReceiveData();
  12. GPIO_WriteHigh(GPIOA,GPIO_PIN_3);



關(guān)鍵詞: STM8SPI通信出

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉