久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: stm8s105k4單片機讀寫寄存器操作 [打印本頁]

作者: zhou1212    時間: 2023-9-18 11:28
標題: stm8s105k4單片機讀寫寄存器操作
求助,想實現一個如圖:芯片-單片機-計算機,單片機用spi讀取芯片的寄存器,然后發送到計算機,現在單片機和計算機之間的通訊已經解決了,單片機用spi讀寄存器的代碼一直有問題,單片機為stm8s105,附件為附帶的spi例程,軟件用的是iar
  1. #include "spi.h"
  2. #include "ALL_Includes.h"
  3. /*********************************************
  4. 函數功能:SPI初始化
  5. 輸入參數:無
  6. 輸出參數:無
  7. 備    注:無
  8. *********************************************/
  9. void SPI_Init(void)
  10. {   
  11.     SPI_IOConfig();
  12.   
  13.     SPI->CR1 |= BIT(2)|BIT(1)|BIT(0);//主設備,高位先發,2分頻
  14.    
  15.     SPI->CR2 |= BIT(1)|BIT(0);//nss軟件管理  
  16.     SPI->CR2 &=~(BIT(2)|BIT(7));//雙線單向模式、全雙工
  17.    
  18.     SPI->CR1 |= BIT(6); //使能SPI BIT(6)
  19.    
  20. }


  21. /*********************************************
  22. 函數功能:SPI讀寫函數
  23. 輸入參數:Data:需要寫入的數據
  24. 輸出參數:無
  25. 備    注:無
  26. *********************************************/
  27. u8 SPI_RW(u8 Data)
  28. {

  29.    while(!(SPI->SR&0X02));//等待發送緩沖區為空
  30.    SPI->DR =Data;
  31.    
  32.    while(!(SPI->SR&0X01));//等待接收緩沖區為非空
  33.    return (SPI->DR);      
  34. }


  35. /*********************************************
  36. 函數功能:SPI IO初始化
  37. 輸入參數:無
  38. 輸出參數:無
  39. 備    注:無
  40. *********************************************/
  41. void SPI_IOConfig(void)
  42. {
  43.      //設置SPI_SCK為輸出
  44.     SPI_SCK_GPIO->DDR  |=  SPI_SCK ;//輸出模式
  45.     SPI_SCK_GPIO->CR1  |=  SPI_SCK ;//推挽輸出
  46.    
  47.      //設置PC6SPI_MOSI為輸出
  48.     SPI_MOSI_GPIO->DDR |=  SPI_MOSI;//輸出模式
  49.     SPI_MOSI_GPIO->CR1 |=  SPI_MOSI;//推挽輸出
  50.   
  51.       //設置SPI_CS為輸出
  52.     SPI_CS_GPIO->DDR   |=  SPI_CS;//輸出模式
  53.     SPI_CS_GPIO->CR1   |=  SPI_CS;//推挽輸出
  54.    
  55.        //設置SPI_MISO為輸入
  56.     SPI_MISO_GPIO->DDR &= ~SPI_MISO;//輸入模式
  57.     SPI_MISO_GPIO->CR1 |=  SPI_MISO;//上拉輸入

  58. }
復制代碼

#include"delay.h"
/***********************
函數功能:us延時
輸入參數:無
輸出參數:無
備    注:粗略延時
***********************/
void delay_us(void)
{
    asm("nop"); //一個asm("nop")函數經過示波器測試代表100ns
    asm("nop");
    asm("nop");
    asm("nop");
}
/***********************
函數功能:ms延時
輸入參數:無
輸出參數:無
備    注:粗略延時
***********************/
void delay_ms(unsigned int time)
{
    unsigned int i;
    while(time--)  
    for(i=900;i>0;i--)
    delay_us();
}


  1. #include "led.h"
  2. #include "ALL_Includes.h"

  3. /***********************
  4. 函數功能:初始化LED
  5. 輸入參數:無
  6. 輸出參數:無
  7. 備    注:無
  8. ***********************/
  9. void LED_Init(void)
  10. {
  11.       //設置IO口為輸出
  12.     LEDPort->DDR |= LEDPin;//輸出模式
  13.     LEDPort->CR1 |= LEDPin;//推挽輸出
  14.    
  15. }

  16. /***********************
  17. 函數功能:LED開
  18. 輸入參數:無
  19. 輸出參數:無
  20. 備    注:無
  21. ***********************/
  22. void LED_ON(void)
  23. {
  24.     LEDPort->ODR &=~LEDPin;//LED置低
  25. }

  26. /***********************
  27. 函數功能:LED開
  28. 輸入參數:無
  29. 輸出參數:無
  30. 備    注:無
  31. ***********************/
  32. void LED_OFF(void)
  33. {
  34.     LEDPort->ODR |= LEDPin;//LED置高
  35. }
復制代碼



SHTAC62_U5P8BP8L[{7@30C.png (63.27 KB, 下載次數: 33)

SHTAC62_U5P8BP8L[{7@30C.png

SPI.zip

411.57 KB, 下載次數: 2


作者: Hephaestus    時間: 2023-9-26 20:39
沒有IAR for STM8,你換個編譯器吧。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久久国产一区二区三区四区 | 国产欧美综合在线 | 久久午夜国产精品www忘忧草 | 欧美婷婷 | 99久久久国产精品 | 91av在线视频观看 | 国产高清免费视频 | 天天爽夜夜爽精品视频婷婷 | 91精品久久久久久久久 | 真人女人一级毛片免费播放 | 在线日韩视频 | 国产精品一区二区av | 日本成人二区 | 99精品一级欧美片免费播放 | 一区二区在线 | 久草网址 | 日韩精品福利 | 久久久国产精品一区 | 欧美一区二区在线 | a在线观看| 91免费在线看 | 在线伊人| 在线成人 | 91久久爽久久爽爽久久片 | 综合自拍 | 一区二区三区免费在线观看 | 日韩欧美在线视频一区 | 色婷婷一区| 日韩精品视频在线 | 91精品国产综合久久香蕉922 | 99热在线观看精品 | 91婷婷韩国欧美一区二区 | 在线视频成人 | 在线观看三级av | 亚洲免费视频播放 | www.youjizz.com日韩| 国产精品日本一区二区在线播放 | 亚洲欧洲一区二区 | 日韩精品视频中文字幕 | 亚洲狠狠爱 | 欧美99 |