MSP430FR2433 用driverlib方式 SPI调试记录

发布者:breakthrough2最新更新时间:2020-07-19 来源: eefocus关键字:MSP430FR2433  driverlib方式  SPI 手机看文章 扫描二维码
随时随地手机看文章

由于MSP430FR2433红板子搞活动,弄了几块玩玩,发现网上很多MSP430系列的SPI很多都使用普通的GPIO模拟SPI,很少有说如何使用driverlib来操作GPIO的,MSP430本身就支持SPI,为何费劲要用GPIO模拟呢?

MSP430系列TI提供了driverlib方便用户进行开发,driverlib是对标准的寄存器操作进行了二次封装,用户只需要调用API就可以了,非常方便。

这里有一个迷惑的地方,就是primary function和secondary以及ternary这三个功能对应的芯片GPIO是怎么对应的,刚开始很困惑,其实非常简单,由于MSP430是兼容了UART和SPI,但是同一个引脚同一时刻只有一个功能工作,如果工作在SPI模式,那么UART就无效了,反之亦然,看一下TRM手册就明白了。

直接上SPI初始化代码


    // Configure SPI Pins for UCA0CLK, UCA0TXD/UCA0SIMO and UCA0RXD/UCA0SOMI

    /*

    * Select Port 1

    * Set Pin 4, Pin 5 and Pin 6 to input Primary Module Function

    */

    GPIO_setAsPeripheralModuleFunctionInputPin(

    GPIO_PORT_P1,

    GPIO_PIN4+GPIO_PIN5+GPIO_PIN6,

    GPIO_PRIMARY_MODULE_FUNCTION

    );    

    

    GPIO_setAsOutputPin(GPIO_PORT_P3,GPIO_PIN1);

    GPIO_setOutputLowOnPin(GPIO_PORT_P3, GPIO_PIN1);

    

    GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN7);

    GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN7);    


    /*

     * Disable the GPIO power-on default high-impedance mode to activate

     * previously configured port settings

     */

    PMM_unlockLPM5();


    //Initialize Master

    EUSCI_A_SPI_initMasterParam param = {0};

    param.selectClockSource = EUSCI_A_SPI_CLOCKSOURCE_SMCLK;

    param.clockSourceFrequency = CS_getSMCLK();

    param.desiredSpiClock = 500000;

    param.msbFirst = EUSCI_A_SPI_MSB_FIRST;

    param.clockPhase = EUSCI_A_SPI_PHASE_DATA_CHANGED_ONFIRST_CAPTURED_ON_NEXT;

    param.clockPolarity = EUSCI_A_SPI_CLOCKPOLARITY_INACTIVITY_HIGH;

    param.spiMode = EUSCI_A_SPI_3PIN;

    EUSCI_A_SPI_initMaster(EUSCI_A0_BASE, ¶m);


    //Enable SPI module

    EUSCI_A_SPI_enable(EUSCI_A0_BASE);


    //Clear receive interrupt flag

    EUSCI_A_SPI_clearInterrupt(EUSCI_A0_BASE,

          EUSCI_A_SPI_RECEIVE_INTERRUPT

          );


    // Enable USCI_A0 RX interrupt

    EUSCI_A_SPI_enableInterrupt(EUSCI_A0_BASE,

                         EUSCI_A_SPI_RECEIVE_INTERRUPT);


很多人可能会发现,用spi貌似速度太慢了,外面接个spi 0.96英寸 oled显示屏,刷新实在太慢,原因是clock造成的,修改一行代码

//Select XT1 as the clock source for SMCLK with no frequency divider

 CS_initClockSignal(CS_SMCLK, CS_DCOCLKDIV_SELECT, CS_CLOCK_DIVIDER_1);


关键字:MSP430FR2433  driverlib方式  SPI 引用地址:MSP430FR2433 用driverlib方式 SPI调试记录

上一篇:MSP432学习笔记:CCS的环境配置(库函数的导入)
下一篇:MSP430F5529硬件IIC驱动IIC接口的OLED

推荐阅读最新更新时间:2024-11-12 18:00

STM8L051x SPI Master
STM8L051x SPI作为Master 使用 在这里我使用STM8L051x SPI作为Master,ads1293作为slave,使两者进行通信。 1、查看STM8L051x 的datasheet 中SPI的master模块介绍如下: 时钟相位如下: 查看ads1293 的datasheet中SPI 介绍如下: 由STM8L051x 与ads1293 的SPI 的介绍,我们可以得出ads1293在时钟为低电平时的第一个上升沿传输与获取数据,所以时钟相位都分别设置为SPI_CPOL_Low、SPI_CPHA_1Edge。 2、对于STM8L051x 中的SPI 作为 master来说,我们只需要配置好输
[单片机]
STM8L051x <font color='red'>SPI</font> Master
STM32之SPI与QSPI学习笔记
QSPI接口简介 QSPI是Queued SPI的简写,是Motorola公司推出的SPI接口的扩展,比SPI应用更加广泛。 在SPI协议的基础上,Motorola公司对其功能进行了增强,增加了队列传输机制,推出了队列串行外围接口协议(即QSPI协议)。 QSPI是一种专用的通信接口,连接单、双或四(条数据线)SPI FLASH存储器。
[单片机]
STM32之<font color='red'>SPI</font>与QSPI学习笔记
技术文章—SPI接口原理介绍
过去十年,智能电表大范围替代传统电表的产业转变,成为工业物联网高速发展的一个缩影。中商产业研究院相关报告指出,预计2021年全球智能电表市场营收规模将达142.2亿美元,与2016年的88.4亿美元、2017年的97.2亿美元相比,年均复合增长率约10%。而Navigant Research研究报告指出,中国在2018年第一季度持续引领全球智能电表市场,安装量超过4.96亿台,占全球总量的68.4%,并正在向下一代智能电表发展。 图1:中商产业研究院预测2021年全球智能电表市场营收规模 由此看来,中国智能电表行业已全面落地,这是否意味着电表市场将趋于平稳?非也。智能电表属于强制检定设备,到期需要更换,更换周期一般为
[网络通信]
技术文章—<font color='red'>SPI</font>接口原理介绍
STM32F103 SPI接口9MHz时钟和18Mhz时钟的波形对比
最近工作上的原因使用了STM32F103V8T6这款CPU,用到了SPI接口来读取AD器件AD7685的数据。按该CPU的手册说明,该SPI接口最大的时钟频率为18MHz,即主时钟72MHz的4分频。抓取了两种时钟频率下SPI接口的波形,保留,待以后有时机细研究。 关于时钟的说明: 1.9MHz采32个AD值 2.9MHz采32个AD值中的1个进行放大观察 3.18MHz采32个AD值 4.18MHz采32个AD值
[单片机]
STM32 SPI硬件模式
反复试验,发现SPI_NSS引脚的自动硬件控制与想象的不同,无论是否外加上拉,只要一使能SPI,SPI_Cmd(SPI1, ENABLE); SPI_NSS引脚就一直处于低电平,直到SPI_Cmd(SPI1, DISABLE);这个需要用程序来控制。 而用过其他芯片则是发送完成自动会拉高,这点是要注意的 我说的就是做主机的时候 SPI_SSOutputCmd(SPIx,ENABLE) 在soft模式时这句话有必要吗?我的理解是当hard模式,需要multimaster的时候,才应该要开启这个output功能,这点从我的截图上可以看出。 我觉得,这里只要把SPI_InitStructure.SPI_NSS = SPI_NSS_So
[单片机]
STM32 <font color='red'>SPI</font>硬件模式
关于STM32的SPI端口设置问题
在复用SPI总线时,必须先设置总线端口。读取其他ARM芯片(如NXP)一般很容易看出芯片的设置是否正确。不过对于STM32就容易让人迷惑了。例如,我们在使用SPI总线进行通信时,可以这样设置: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用的推挽输出 恐怕大家对MISO端口的设置就会产生疑惑了
[单片机]
关于STM32的<font color='red'>SPI</font>端口设置问题
单片机SPI通信接口
UART、I2C和 SPI 是单片机系统中最常用的三种通信协议。前边我们已经学了 UART 和I2C通信协议,这节课我们来学习剩下的 SPI 通信协议。 SPI 是英语 Serial Peripheral Interface 的缩写,顾名思义就是串行外围设备接口。SPI 是一种高速的、全双工、同步通信总线,标准的 SPI 也仅仅使用 4 个引脚,常用于单片机和 EEPROM、FLASH、实时时钟、数字信号处理器等器件的通信。SPI 通信原理比 I2C要简单,它主要是主从方式通信,这种模式通常只有一个主机和一个或者多个从机,标准的 SPI 是 4 根线,分别是 SSEL(片选,也写作 SCS)、SCLK(时钟,也写作 SCK)、MO
[单片机]
单片机<font color='red'>SPI</font>通信接口
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved