找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1546|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

stm32用spi點(diǎn)亮led矩陣 程序不報(bào)錯(cuò) led不亮 救救孩子吧

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:991860 發(fā)表于 2021-12-19 18:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
.h文件
#ifndef __SPI_H
#define __SPI_H
#include "stm32f10x.h"


/*SPI ????-??****************************/
#define FLASH_SPIx                 SPI1
#define FLASH_SPI_APBxClock_FUN    RCC_APB2PeriphClockCmd
#define FLASH_SPI_CLK              RCC_APB2Periph_SPI1

//CS(NSS)?? ????? GPIO ??
#define FLASH_SPI_CS_APBxClock_FUN RCC_APB2PeriphClockCmd
#define FLASH_SPI_CS_CLK RCC_APB2Periph_GPIOB
#define FLASH_SPI_CS_PORT GPIOB
#define FLASH_SPI_CS_PIN GPIO_Pin_0

//SCK ??
#define FLASH_SPI_SCK_APBxClock_FUN RCC_APB2PeriphClockCmd
#define FLASH_SPI_SCK_CLK RCC_APB2Periph_GPIOA
#define FLASH_SPI_SCK_PORT GPIOA
#define FLASH_SPI_SCK_PIN GPIO_Pin_5
//MISO ??
#define FLASH_SPI_MISO_APBxClock_FUN RCC_APB2PeriphClockCmd
#define FLASH_SPI_MISO_CLK RCC_APB2Periph_GPIOA
#define FLASH_SPI_MISO_PORT GPIOA
#define FLASH_SPI_MISO_PIN GPIO_Pin_6
//MOSI ??
#define FLASH_SPI_MOSI_APBxClock_FUN RCC_APB2PeriphClockCmd#define FLASH_SPI_MOSI_CLK RCC_APB2Periph_GPIOA
#define FLASH_SPI_MOSI_PORT GPIOA
#define FLASH_SPI_MOSI_PIN GPIO_Pin_7

#define FLASH_SPI_CS_LOW() GPIO_ResetBits( FLASH_SPI_CS_PORT, FLASH_SPI_CS_PIN )
#define FLASH_SPI_CS_HIGH() GPIO_SetBits( FLASH_SPI_CS_PORT, FLASH_SPI_CS_PIN )


void SPI_FLASH_Init(void);
void SPI_FLASH_SendByte(u8 add,u8 byte);


#endif




spi.c文件
#include "spi.h"
#include "stm32f10x.h"

void SPI_FLASH_Init(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;

FLASH_SPI_APBxClock_FUN ( FLASH_SPI_CLK, ENABLE );


FLASH_SPI_CS_APBxClock_FUN ( FLASH_SPI_CS_CLK|FLASH_SPI_SCK_CLK|
FLASH_SPI_MISO_PIN|FLASH_SPI_MOSI_PIN, ENABLE );


GPIO_InitStructure.GPIO_Pin = FLASH_SPI_CS_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(FLASH_SPI_CS_PORT, &GPIO_InitStructure);


GPIO_InitStructure.GPIO_Pin = FLASH_SPI_SCK_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(FLASH_SPI_SCK_PORT, &GPIO_InitStructure);

/* ?? SPI ? MF103-????*/
GPIO_InitStructure.GPIO_Pin = FLASH_SPI_MISO_PIN;
GPIO_Init(FLASH_SPI_MISO_PORT, &GPIO_InitStructure);

/* ?? SPI ? MOSI ??*/
GPIO_InitStructure.GPIO_Pin = FLASH_SPI_MOSI_PIN;
GPIO_Init(FLASH_SPI_MOSI_PORT, &GPIO_InitStructure);

/* ???? FLASH: CS ?????*/
FLASH_SPI_CS_HIGH();
//?????,???? SPI ???????




SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(FLASH_SPIx, &SPI_InitStructure);

/* ?? SPI */
SPI_Cmd(FLASH_SPIx, ENABLE);
}

void SPI_FLASH_SendByte(u8 add,u8 byte)
{
FLASH_SPI_CS_LOW();
SPI_I2S_SendData(FLASH_SPIx, add);
SPI_I2S_SendData(FLASH_SPIx, byte);
FLASH_SPI_CS_HIGH();

}


主函數(shù)
#include "stm32f10x.h"
#include "spi.h"



int main(void)
{

u8 i;
         void SPI_FLASH_Init();
SPI_FLASH_SendByte(0x09, 0x00);       //????:BCD?
SPI_FLASH_SendByte(0x0a, 0x03);       //??
SPI_FLASH_SendByte(0x0b, 0x07);       //????;8??????
SPI_FLASH_SendByte(0x0c, 0x01);       //????:0,????:1
SPI_FLASH_SendByte(0x0f, 0x01);       //????:1;????,????:0
        while(1)
        {
                 for(i=1;i<9;i++)
    SPI_FLASH_SendByte(i,0xfe);
        }
        
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:991860 發(fā)表于 2021-12-19 18:21 | 只看該作者
led模塊是3線(xiàn)的   時(shí)鐘線(xiàn)和數(shù)據(jù)線(xiàn) 片選線(xiàn)   
回復(fù)

使用道具 舉報(bào)

板凳
ID:592807 發(fā)表于 2021-12-20 09:31 | 只看該作者
15615615 發(fā)表于 2021-12-19 18:21
led模塊是3線(xiàn)的   時(shí)鐘線(xiàn)和數(shù)據(jù)線(xiàn) 片選線(xiàn)

我每次做考試都寫(xiě)“今天天氣真好”,我也沒(méi)錯(cuò)啊,天氣的確挺好的,你幫我分析一下我小學(xué)二年級(jí)試卷哪錯(cuò)了,要怎么改?
你說(shuō)你的程序不報(bào)錯(cuò),那就是程序沒(méi)問(wèn)題,程序沒(méi)問(wèn)題哪出問(wèn)題了:硬件連接,LED模塊,GPIO口,LED通信指令一個(gè)都沒(méi)有,就粘貼一個(gè)代碼,還帶一堆不明符號(hào)的注釋?zhuān)l(shuí)有空誰(shuí)給你你解答,不會(huì)發(fā)問(wèn)就去看發(fā)帖推薦。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表