TMS320F28335的串口有三个串口,SCIA,SCIB和SCIC,GPIO的管脚对应如下:
SCIA对应GPIO28/29和GPIO35/36两组可选,SCIB有四组管脚可以选择,分别是GPIO9/11,GPIO14/15,GPIO18/19,GPIO22/23,SCIC对应的是GPIO62/63。
首先需要定义管脚。
void InitSciaGpio() //初始化GPIO管脚
{
EALLOW;
//根据硬件设计决定采用GPIO28/29和GPIO35/36中的哪一组。这里以35/36为例
//定义管脚为上拉
GpioCtrlRegs.GPBPUD.bit.GPIO36 = 0;
GpioCtrlRegs.GPBPUD.bit.GPIO35 = 0;
//定义管脚为异步输入
GpioCtrlRegs.GPBQSEL1.bit.GPIO36 = 3;
//配置管脚为SCI功能管脚
GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 1;
GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 1;
EDIS;
}
SCIB和SCIC的配置差不多。
下来就要定义波特率等等了。例子是9600bps,1,8,n,1.
void scia_init()
{
SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback
// No parity,8 char bits,
// async mode, idle-line protocol
SciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
SciaRegs.SCICTL2.bit.TXINTENA =1; //发送中断使能
SciaRegs.SCICTL2.bit.RXBKINTENA =1;//接收中断使能
SciaRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 37.5MHz.
SciaRegs.SCILBAUD =0x00E7;
SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset
}
接着进行中断的配置
EALLOW; // This is needed to write to EALLOW protected registers
PieVectTable.SCIRXINTA = &sciaRxIsr;
PieVectTable.SCITXINTA = &sciaTxIsr;
PieVectTable.SCIRXINTB = &scibRxIsr;
PieVectTable.SCITXINTB = &scibTxIsr;
EDIS; // This is needed to disable write to EALLOW protected registers
上面是将SCIA和SCIB的中断服务程序连到PIE的中断表中,发生中断就会跑到你的ISR去了
下面就是开中断了。
PieCtrlRegs.PIECTRL.bit.ENPIE = 1; // Enable the PIE
block
PieCtrlRegs.PIEIER9.bit.INTx1=1; // PIE
Group 9, int1
PieCtrlRegs.PIEIER9.bit.INTx2=1; // PIE
Group 9, INT2
PieCtrlRegs.PIEIER9.bit.INTx3=1; // PIE
Group 9, INT3
PieCtrlRegs.PIEIER9.bit.INTx4=1; // PIE
Group 9, INT4
IER = 0x100; // Enable CPU INT
EINT;
。。。。串口OK了
分享到:
相关推荐
这是自己整理的TMS320F28335串口中断收发程序,可以实现中断发送,中断接收功能,结构简洁,清晰明了。
DSP8335的SCI串口发送与接收,希望大家喜欢。
TMS320F28335 SCI 串口通信例程,485通信协议
TMS320F28335的自带串口SCI编程
TMS320F28335串口接收发送数据
文件包含用CCS6.0写的源码和一个串口调试助手(使用非常方便)。使用研旭实用开发板,基于CCS6.0开发环境,能实现DSP与串口调试助手之间通信。 两种实现方法: 1.查询方式 2.FIFO中断方式 在查询方式中,能实现字符/...
本程序是基于TMS320F28335的SCI通信。本程序是利用F28335自身的SCI模块,通过配置SCI的寄存器,来设置波特率等,来实现F28335与PC机的通信。
TMS320F2812 LCD1602 SCI串口通信 源代码 TMS320F2812 LCD1602 SCI串口通信 源代码
实现dsp28335的串口通信程序 EALLOW; // This is needed to write to EALLOW protected registers PieVectTable.SCIRXINTA = &sciaRxIsr; PieVectTable.SCITXINTA = &sciaTxIsr; PieVectTable.SCIRXINTB = &...
中断与查询向结合的高效,高性能串口驱动。 void SciC_Init(Uint32 baud, Uint16 Config); Uint16 SciC_Rec(Uint16* pDat, Uint16 Used, Uint16 Total); Uint16 SciC_Tra(Uint16* pDat, Uint16 Used, Uint16 Total);...
基于DSP28335的通信里程,需要的自己拿去
TMS320F28027自带有串口,利用串口中断与上位机(电脑)进行数据交换,软件设置成 上位机所发数据要以‘*’结束。 仅供DSP板的学习所用,软件用的是CCS4.1,编译如果不能通过,就把工程存放目录名中的汉字去掉!
SCI(Serial Communication Interface)...如果设计时我们的SCI使用的是RS232串行接口,那么,2812就能和其他使用RS232接口的设备进行通信。例如2812内部的两个SCI之间,或者2812的SCI和其他DSP的SCI之间均能实现通信。
开发环境ccs 实现TMS320F2812的串口通信的基本拨那个能框架,开发者可以在主程序中加入自己的程序
TMS320F2812 SCI串口通信 键盘 12864液晶显示 DSP TMS320F2812 SCI串口通信 键盘 12864液晶显示 DSP
TI_DSP28335 串口FIFO中断接收字符串与回发程序,中断深度为8字符,保姆级注释,不会你打我。
TMS320LF2407的异步串口SCI程序
中文的2808的完整SCI参考文档,TMS320F280X串行通信接口(SCI)参考手册(中文版)。
实现TMS320与PC机之间的串口通信,可以发单个数据,也可以一次发多个数据,当发送的数据达到8个时返回显示给PC机
本资料详细介绍了TMS320C2812芯片的SCI模块,是学习DSP的串口通讯很好的资料。