环境:
主机:WIN7
开发环境:MDK4.23
MCU:STM32F103CBT6
说明:
软件设置NSS脚,利用查询方式传输
源代码:
初始化代码:
//关闭SPI
SPI_Cmd(SPI1,DISABLE);
//初始化SPI接口的SSN脚以及NTRX的RST脚
NtrxCtrlInit();
//初始化SPI时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOA,ENABLE);
//配置SPI1引脚:SCK, MISO and MOSI
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init( GPIOA, &GPIO_InitStructure );
// SPI1配置
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex ;
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波特率分频设置:4M
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8 ;
//SPI设置成LSB模式
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB ;
SPI_InitStructure.SPI_CRCPolynomial = 7 ;
SPI_Init( SPI1, &SPI_InitStructure ) ;
//启动SPI
SPI_Cmd(SPI1,ENABLE);
发送代码:
//SPI发送一个字节
static uint8 SPI_SendByte(uint8 Data)
{
// Loop while DR register in not emplty
while( SPI_I2S_GetFlagStatus( SPI1, SPI_I2S_FLAG_TXE ) == RESET ) ;
// Send byte through the SPI1 peripheral
SPI_I2S_SendData( SPI1, Data ) ;
// Wait to receive a byte
while( SPI_I2S_GetFlagStatus( SPI1, SPI_I2S_FLAG_RXNE ) == RESET ) ;
// Return the byte read from the SPI bus
return SPI_I2S_ReceiveData( SPI1 ) ;
}
接收代码:
//SPI读取一个字节
void SPI_ReadBytes( uint8 Addr, NtrxBufferPtr Buffer, uint8 Len )
{
if( ( Len > 0x80 ) || ( Len == 0 ) )
Len = 1 ;
SPI_SendByte( Len ) ;
SPI_SendByte( Addr ) ;
while( Len-- )
{
*Buffer = SPI_SendByte( 0xFF ) ;
Buffer ++ ;
}
}
NSS脚电平设置:
//SSN脚拉低,开始发送数据
void NtrxSSN_Lo( void )
{
GPIO_ResetBits( NTRX_SSN_PORT, NTRX_SSN_PIN ) ;
}
//SSN脚置高,结束发送数据
void NtrxSSN_Hi( void )
{
GPIO_SetBits( NTRX_SSN_PORT, NTRX_SSN_PIN ) ;
}
示例代码:
uint8 NtrxReadSingleSPI( uint8 Addr )
{
NtrxBufferType r ;
NtrxSSN_Lo() ;
SPI_ReadBytes( Addr, &r, 1 ) ;
NtrxSSN_Hi() ;
return r ;
}
输出:
黄线为NSS脚电平,蓝线为CLK电平.
上一篇:更快的STM32H7微控制器,为产品带来更高的性能和经济性
下一篇:STM32定时器溢出模式计时设置
推荐阅读
史海拾趣
在全球环保意识的日益增强下,CEI积极响应国家节能减排的号召,将环保理念融入企业的生产和经营中。公司引进先进的环保设备和技术,优化生产工艺流程,减少能源消耗和废弃物排放。同时,CEI还倡导绿色消费和循环经济理念,推动电子行业的绿色发展和可持续发展。
请注意,以上故事仅为基于一般情况和假设情境的概述,并非CEI公司的实际发展历程。如有需要,建议查阅相关文献资料或咨询行业专家以获取更准确的信息。
随着汽车电子市场的快速发展,三礼公司敏锐地捕捉到了这一市场的巨大潜力。2011年,公司成功开发了超薄型模压电感,并完成了全厂70%以上的精益生产配置。同年,公司还取得了车载规范TS16949认证,成为世界第一客户的主要供货商。这一成就不仅彰显了公司在电感领域的技术实力,也为公司进一步拓展车载市场奠定了坚实基础。
EIC公司一直秉持着环保责任和社会责任感。公司在生产过程中积极采用环保材料和工艺,减少废弃物排放和能源消耗。同时,EIC还积极参与社会公益活动,为社会做出了积极贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。
AEL Crystals非常重视与供应商和客户之间的合作关系。公司积极与供应商建立长期稳定的合作关系,确保原材料的稳定供应和质量可靠。同时,AEL Crystals也与众多客户建立了紧密的合作关系,深入了解客户需求并提供定制化的解决方案。这种长期合作关系的建立为公司的持续发展提供了有力保障。
爱普特半导体的产品因其卓越的性能和稳定的质量,赢得了众多大型企业的青睐。公司与小米、美的、阿里、LG等多家知名企业建立了战略合作关系。这些合作不仅为爱普特带来了稳定的订单和市场份额,还提升了公司的品牌影响力和行业地位。通过与这些企业的深度合作,爱普特不断吸收行业最新技术和管理经验,推动了自身技术水平和市场竞争力的提升。
本帖最后由 paulhyde 于 2014-9-15 09:42 编辑 https://bbs.eeworld.com.cn/viewthread.php?tid=83424&extra=&frombbs=1 [ 本帖最后由 shuining 于 2009-8-24 09:01 编辑 ] … 查看全部问答∨ |
|
三相无刷无传感器直流电机检测仪是飞盈佳乐最新一代的专门针对三相无刷无霍尔传感器直流电机的检测仪器。该产品驱动能力强,功率大,测试速度快,测量范围大,具自动断电保护,可以在线及时显示电机运行时各项参数,是无传感无刷电机的性能测试的好产 ...… 查看全部问答∨ |
|
采用S3C2410开发板,实现基于linux的数据采集软件!! S3C2410中,利用GPIO口获取FPGA传来的数据进行数据处理,利用QT库完成软件的界面设计。。小妹我刚接触嵌入式的开发。。请求各位高人指点下。软件的模块之类的!!不胜感激。。… 查看全部问答∨ |
|
STM32高密度型器件是可以与TFT LCD相连的,其中占用了FSMC一些控制线(如NEx,NOE等),现在要做的项目是一个触屏手持设备,需要做界面,含有图片较多(以数组形式存放的话,一幅256色图片,320*240的话,一个点一字节,那一幅图需70K左右空间 ...… 查看全部问答∨ |
陕西九翔电子科技有限公司 工程师:于钦清 机型: LightSpeed VCT 故障现象: 床不能正常上升 本机故障表现为床下降过程一切正常,在按升床键上升过程中中间不能停顿,一旦停顿 ...… 查看全部问答∨ |
【让人受不了的BUG】解决Chronos手表无法读取时间(Copy System Time)的问题 刚拿到Chronos手表,发现这个BUG。看到论坛里好多人遇到这个问题,现学了一下TCL 找到了原因 原理如下: Chronos Control Center(CCC) 使用了TCL脚本语言做的界面,读取系统时间的函数是clock format [clock seconds] -format \"%m\"复制代码这 ...… 查看全部问答∨ |
本帖最后由 qwqwqw2088 于 2013-12-28 11:27 编辑 这里介绍可的是锂电池充电三/四节串联保护系统设计的具体做法! 该保护系统采用精工电子三/四节串联锂离子可充电电池专用充、放电保护ICS-8254构建一级保护。S-8254系列内置高精度电压检测电路 ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 有奖直播报名:赛灵思和安富利专注嵌入式视觉应用,助力人工智能和汽车辅助驾驶!
- 直播已结束【使用 TI 低成本 MSPM0 MCU 快速开发 – 生态详解系列之二】(9:45开始入场)
- 看视频瓜分红包:面向高效高密度开关电源的先进功率 MOSFET 技术及应用
- 直播已结束【Molex 新能源汽车低压连接器解决方案】
- 免费申请评测:和小伙伴们一起畅玩STM32F769I
- 年味大比拼,新春晒照赢好礼罗
- 泰克 MSO6B 探索营:设计资源集锦
- 我与BeagleBone 有个约会!
- 有奖直播:Microchip适用于CryptoAuthentication™系列的可信任平台
- 《模拟对话》50周年大合集(2013-2016)