久久久久久久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
主站蜘蛛池模板: 亭亭五月激情 | 韩日一区二区 | 国产精品99久久久久久久久 | 久久综合久色欧美综合狠狠 | 午夜免费视频 | 精品国产乱码久久久久久1区2区 | 久久这里只有精品首页 | 国产精品免费观看视频 | 亚洲国产成人精品久久久国产成人一区 | 婷婷激情综合 | 一区二区在线 | 日韩精品一区二区三区在线 | 国产精品久久久久aaaa | 欧美网址在线观看 | 国产资源在线观看 | 91最新视频| 麻豆天堂 | 国产在线二区 | 成人av一区 | 国产午夜精品一区二区三区在线观看 | 久在线观看 | 91在线视频国产 | 婷婷久久综合 | 国产日产精品一区二区三区四区 | hitomi一区二区三区精品 | 国产欧美精品一区二区 | 国产在线精品一区二区三区 | 亚洲精品av在线 | 精久久| 亚洲午夜小视频 | 精品国产一区二区三区性色 | 国产精品色| 91精品国产一区二区三区 | 亚洲一区国产精品 | 日韩中文字幕在线视频 | 久久青青 | 9色网站 | 中文字幕国产 | 亚洲区在线 | 亚洲久草| 狠狠色综合网站久久久久久久 |