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

这几天做电赛学习了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

时间: 2024-08-07 12:33:02

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

UDA1341 SSI音频驱动

SSI音频驱动 音频驱动的文章网上有很多,分析的也很具体,这里只记录本人在调试音频驱动的过程和理解.调试一个驱动,最主要的还是从本质上去理解它的工作原理,包括时钟,数据,中断,寄存器配置等.或许并不需要全部知道,但是追根到底会对以后的驱动有很大帮助. 音频驱动 linux音频驱动的结构我个人感觉做得很漂亮,有面向对象编程的人不难看出这个结构与类图很想,将变化的东西封装了起来,层次清晰,方便理解和调试: cpu 驱动:即总线驱动,如I2S,SSI,AC97,ESAI,SPDIF等.封装了对总线的配

Nginx配置SSI

一.什么是SSISSI:Server Side Include,是一种基于服务端的网页制作技术,大多数(尤其是基于Unix平台)的web服务器如Netscape Enterprise Server等均支持SSI命令.它的工作原因是:在页面内容发送到客户端之前,使用SSI指令将文本.图片或代码信息包含到网页中.对于在多个文件中重复出现内容,使用SSI是一种简便的方法,将内容存入一个包含文件中即可,不必将其输入所有文件.通过一个非常简单的语句即可调用包含文件,此语句指示 Web 服务器将内容插入适当

Apache 配置SSI速记

1. 启用模块 httpd.conf LoadModule filter_module modules/mod_filter.so 2. <Directory 的Options配置中增加Includes Options +Includes 3. 增加 .shtml文档类型,并设置INCLUDES AddType text/html .shtml AddOutputFilter INCLUDES .shtml 4. 第3步是需要重命名文件的,也就是说只有以.shtml结尾的文件中的include等

大规模网站sesson会话保持思路及实践配置

1.需求: 请教个问题:我用lvs的rr模式,(考虑过 ipvsadm -p,但是这样就失去了负载均衡的意义感觉),后端有10台web,用一台memcached专门用于存储session文件,但是现在问题是,客户端请求第一次被轮训到 web A服务器,A可以获取到本次回话的session ID,从而可以从memcached里通过sessionID获取到这次回话的session ID,而第二次请求轮训到B服务器,因为第一次请求没经过web B,他不知道session ID啊,所以他从memcach

nginx配置ssi实现页面拆分

在做一个网站时,页面上会有很多重复的内容,每个页面写一遍很冗余,修改时还容易遗漏,所以可以把公共的部分写好,放在单独的HTML中,用时引用就行了. nginx配置ssi可以将单个页面拆分成一个一个的小页面,访问页面时将多个子页面合并渲染输出,通过cms去管理这些小页面,实现当要更改部分页面内容时只需要更改具体某个小页面. 1. 什么是SSI SSI:Server Side Include,是一种基于服务端的网页制作技术,大多数(尤其是基于Unix平台)的web服务器如Netscape Enter

Tomcat 各版本 配置SSI服务实现html模块化实现#include virtual=&quot;static/_header.html&quot;

Tomcat 各版本 配置SSI服务实现html模块化实现#include virtual="static/_header.html" https://blog.csdn.net/lkg5211314/article/details/104858531/ 原文地址:https://www.cnblogs.com/zplogo/p/12532636.html

MyBatis 实践 --配置

MyBatis 实践 Configuration mybatis-configuration.xml是MyBatis的全局配置文件(文件名任意),其配置内容和顺序如下: properties : 属性(文件)加载/配置 settings : 全局配置参数 typeAliases : 定义类型别名 typeHandlers : 类型处理器 objectFactory : 对象工厂 plugins : 插件 environments : 环境集合属性对象 environment transactio

linux内核编译,配置本机驱动

1.前言  编译linux内核失败的原因很多时候就是驱动选错,适合自己本机的驱动没编译进去.面对特殊平台(或者有些洁癖者,我就是^_^),要编译精简内核,只要本机驱动,其他都不需要.面对内核里面这么多驱动,不懂硬件的我们,看到都头大.本人第一次安装gentoo的时候,内核编译了5次,前4次主要失败原因是以太网卡驱动.无线网卡驱动.显卡驱动.声卡驱动都没一次性配置正确.虽然gentoo提供了genkernel命令,可以自动帮你编译内核,但还是想自己手工尝试下. 2.获取本机驱动信息 既然跟内核挂钩

Kali-linux安装并配置NVIDIA显卡驱动

显卡驱动程序就是用来驱动显卡的程序,它是硬件所对应的软件.驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息.有了此信息,计算机就可以与设备进行通信.驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作.操作系统不同,硬件的驱动程序也不同.本节将介绍在Kali中安装NVIDIA显卡驱动的方法. 安装NVIDIA显卡驱动的具体操作步骤如下所示. (1)将开源的NVIDIA驱动nouveau加入黑名单.方法如下所示: [email protect