码迷,mamicode.com
首页 > 其他好文 > 详细

[TM4C123单片机实践] 配置SSI并驱动DAC7811显示正弦波

时间:2015-05-17 23:37:58      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:单片机   c   c++   tm4   电子设计   

这几天做电赛学习了TM4C123 单片机, 总得来说, 结合官方例程与参考手册, 加上一个好的示波器, 效率会高很多.

TI的SSI 实际上就是SPI.

我门先熟悉一下SPI

SPI ,就是在主机与从机之间用来传输数据的 通过TX, RX传输数据, 通过CS 片选信号线激活主机与从机的通信, 通过CLK 时钟信号控制频率


#include <stdbool.h>
#include <stdint.h>
#include "inc/hw_memmap.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/ssi.h"
#include "driverlib/sysctl.h"
//ssi.h 必须要有
extern uint32_t Fre;
void ssi_0(void)
{
    SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_10MHZ);
    //选择时钟源    
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
    //使能SSI0
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    //使能GPIO
    GPIOPinConfigure(GPIO_PA2_SSI0CLK); //分别开启GPIO引脚对应的功能
    GPIOPinConfigure(GPIO_PA3_SSI0FSS);
    GPIOPinConfigure(GPIO_PA5_SSI0TX);
<p>
</p>	
    SysCtlGPIOAHBEnable(GPIO_PORTA_BASE);
    //挂载高速外设总线		
    GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_3 |
                   GPIO_PIN_2); //使能GPIO的SSI功能
    SSIConfigSetExpClk(SSI0_BASE, SysCtlClockGet(), SSI_FRF_TI,
                       SSI_MODE_MASTER, Fre, 16);
    //选择SSI的时钟源,选择工作模式,选择频率,选择发送位数
    SSIEnable(SSI0_BASE);//使能
}

void DAC_Write_0(uint16_t ssi0_send)
{
		SSIDataPut(SSI0_BASE, 0x3FFF&ssi0_send);/**/ //发送数据

	//    while(SSIBusy(SSI0_BASE)) ;
}
关于引脚选择:

我们可以参考reference

技术分享


关于工作模式选择:

SPI 有4种工作模式:

我们需要根据具体DAC接收方式进行选择:

具体参考reference

技术分享



[TM4C123单片机实践] 配置SSI并驱动DAC7811显示正弦波

标签:单片机   c   c++   tm4   电子设计   

原文地址:http://blog.csdn.net/qq_21970857/article/details/45798473

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!