历史上的今天
返回首页

历史上的今天

今天是:2025年02月15日(星期六)

2019年02月15日 | STM32F030C6+nrf24l01 SPI配置

2019-02-15 来源:eefocus

void SPI1_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

SPI_InitTypeDef  SPI1_InitStructure;


RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);


//PB13:SCK PB14:MISO PB15:MOSI

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

GPIO_Init(GPIOB,&GPIO_InitStructure);


//PB10:CE   PB12:CS

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_12;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

GPIO_Init(GPIOB, &GPIO_InitStructure);



//GPIO重映射

GPIO_PinAFConfig(GPIOB,GPIO_PinSource13 |GPIO_PinSource14 | GPIO_PinSource14,GPIO_AF_0);


SPI1_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;

SPI1_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;

SPI1_InitStructure.SPI_CPOL = SPI_CPOL_Low;

SPI1_InitStructure.SPI_CRCPolynomial = 7;

SPI1_InitStructure.SPI_DataSize = SPI_DataSize_8b;

SPI1_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;

SPI1_InitStructure.SPI_FirstBit  = SPI_FirstBit_MSB;

SPI1_InitStructure.SPI_Mode = SPI_Mode_Master;

SPI1_InitStructure.SPI_NSS = SPI_NSS_Soft;

SPI_Init(SPI1,&SPI1_InitStructure);


SPI_RxFIFOThresholdConfig(SPI1,SPI_RxFIFOThreshold_QF);

SPI_Cmd(SPI1,ENABLE);


// SPI1_ReadWriteByte(0xFF);


}


uint8_t SPI1_ReadWriteByte(uint8_t TxData)

{

uint8_t retry = 0;


while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET)

{

retry++;

if(retry > 200)

{

return 0;

}

}


SPI_SendData8(SPI1, TxData);

retry = 0;

while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)

{

retry++;

if(retry > 200)

{

return 0;

}

}


return SPI_ReceiveData8(SPI1);

}


推荐阅读

史海拾趣

Electron Products Inc公司的发展小趣事

Electron Products Inc(简称EPI)成立于XXXX年,由一群对电子技术充满热情的工程师共同创立。初期,公司主要从事电子产品的设计和研发,致力于为小型企业和消费者提供高质量的电子产品。通过不断创新和优化产品,EPI逐渐在市场上树立了自己的品牌形象。

福斯特半导体(Foster)公司的发展小趣事

Electron Products Inc(简称EPI)成立于XXXX年,由一群对电子技术充满热情的工程师共同创立。初期,公司主要从事电子产品的设计和研发,致力于为小型企业和消费者提供高质量的电子产品。通过不断创新和优化产品,EPI逐渐在市场上树立了自己的品牌形象。

China Semiconductor Corp公司的发展小趣事

技术创新的同时,CSC也注重市场拓展和品牌建设。公司积极参与国际交流与合作,与多家国际知名企业建立了战略合作关系。同时,CSC加强了对国内市场的开拓,通过提供优质的产品和服务,赢得了客户的信赖和好评。随着品牌知名度的提升,CSC的产品逐渐在国内外市场上占据了一席之地。

Advanced Electronic Packaging公司的发展小趣事

随着公司技术的不断进步,Advanced Electronic Packaging公司开始寻求与行业内知名厂商的合作机会。通过与一家全球领先的电子产品制造商达成战略合作,公司成功将其先进的封装技术应用于对方的高端产品线中。这一合作不仅提升了合作双方的产品竞争力,还为Advanced Electronic Packaging公司带来了可观的利润回报。此后,公司陆续与多家知名企业建立了合作关系,进一步巩固了其在电子封装领域的市场地位。

BOSER公司的发展小趣事

BOSER公司成立于XXXX年,初期专注于研发和生产电子元器件。面对市场竞争的激烈,BOSER凭借其卓越的技术实力和对市场需求的敏锐洞察,成功开发出一款性能卓越的电子元器件,迅速赢得了市场的认可。这一突破为BOSER公司后续的发展奠定了坚实的基础。

Advantech公司的发展小趣事

近年来,电子行业面临着诸多变革和挑战,如智能化、物联网等新技术的发展。BOSER公司积极应对这些变革,不断调整和优化产品结构,加大在智能化、物联网等领域的研发投入。同时,公司还加强与高校、科研机构的合作,共同推动电子行业的创新与发展。

问答坊 | AI 解惑

学软件需要学习板

格兰瑞公司作的学习板!比较漂亮哦! http://shop58296062.taobao.com/ http://www.mcu118.com/…

查看全部问答>

数字万用表问题

1.用数字万用表的直流电压档会不会测到交流分量? 2.用数字万用表的交流电压档会不会测到直流分量?…

查看全部问答>

何為"阻抗匹配"?

本帖最后由 paulhyde 于 2014-9-15 09:02 编辑 阻抗匹配(Impedance matching)是微波电子学里的一部分,主要用于传输线上,来达至所有高频的微波信号皆能传至负载点的目的,不会有信号反射回来源点,从而提升能源效益。 大体上,阻抗匹配有两 ...…

查看全部问答>

震撼到神经末梢的创意手机(附图)

    我是个用手机历史很长的人,上学的时候就开始拿个手机显摆着(当时满校园手机总量绝对不超过1位数);我是个爱玩手机的人,前前后后玩过、刷过和拆过n多款手机了;我还是个“业内人士”,服务多个手机客户公关传播也多年了(我们的团 ...…

查看全部问答>

1602不能显示第一个字母

我写了个1602+1302的程序,在调试的时候,总是不能显示第一个字母, 不如说我要写TIME,它就只会显示IME, 中间再写 ,write_com(写命令), 然后后面接着写东西的话,第一个字母也是不显示,但是闪过之后又显示, 然后又不显示,就这样循环, ...…

查看全部问答>

ARM编程-ADS软件

我编完程序,在ADS1.2中编译时,在2410init.s中有2个错误。error 1, unkonwn opcode: AREA Init,CODE,READONLY,程序接下来是ENTRY ,报错,error 2 ,A label was found which was in no AREA,请教大家,这是怎么回事?…

查看全部问答>

Device Emulator 3.0能单独使用吗?还是必须在vs2008下使用?

我装的是vs2005,不晓得能不能使用. 能给个说法吗? 谢谢!…

查看全部问答>

扬创UTU-2440开发版不支持大容量SD卡 请教怎么修改

已打过07年全年补丁.目前能支持2G SD卡.看了网上支持大容量SD卡的文章. [url=http://www.cnblogs.com/wogoyixikexie/archive/2009/05/06/1450503.html][/url] 测试了后连普通的2G SD卡也检测不到. 修改前sdbus.dll大小为49K, 在platform->setti ...…

查看全部问答>

TI Stellaris学习笔记(使用openocd(基于mingw)调试LM3S811开发板环境的搭建)

LM3S811开发板学习笔记---使用openocd(基于mingw)调试LM3S811开发板环境的搭建收到网站的LM3S811开发板,不能放那浪费了。因本人在linux环境下开发的较多,对keil和iar等环境也不是很熟悉而且他们是商业软件,使用D版毕竟不太好,这里就以如何使用 ...…

查看全部问答>

单片机AD采样结果如何以十进制发送到串口调试助手

AD转换计算后数据为unsigned long 型数据   如何通过串口传输到调试助手且为十进制的,高手指点…

查看全部问答>