找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1527|回复: 2
打印 上一主题 下一主题
收起左侧

stm32用spi点亮led矩阵 程序不报错 led不亮 救救孩子吧

[复制链接]
跳转到指定楼层
楼主
ID:991860 发表于 2021-12-19 18:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
.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();

}


主函数
#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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:991860 发表于 2021-12-19 18:21 | 只看该作者
led模块是3线的   时钟线和数据线 片选线   
回复

使用道具 举报

板凳
ID:592807 发表于 2021-12-20 09:31 | 只看该作者
15615615 发表于 2021-12-19 18:21
led模块是3线的   时钟线和数据线 片选线

我每次做考试都写“今天天气真好”,我也没错啊,天气的确挺好的,你帮我分析一下我小学二年级试卷哪错了,要怎么改?
你说你的程序不报错,那就是程序没问题,程序没问题哪出问题了:硬件连接,LED模块,GPIO口,LED通信指令一个都没有,就粘贴一个代码,还带一堆不明符号的注释,谁有空谁给你你解答,不会发问就去看发帖推荐。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表