DSP28335 CCS通信:接收5A并返回5A代码示例
#include "DSP2833x_Device.h"
char receivedData;
void SCI_Init(void) { // 此处为SCI初始化配置代码,具体根据实际情况进行配置 // ... }
interrupt void SCI_Rx_ISR(void) { receivedData = SciaRegs.SCIRXBUF.all; // 读取接收到的数据
if (receivedData == 0x5A) // 判断输入是否为5A
{
SciaRegs.SCITXBUF = receivedData; // 输出5A
}
PieCtrlRegs.PIEACK.bit.INT9 = 1; // 清除中断标志位
}
void main(void) { DisableDog(); // 禁用看门狗
InitSysCtrl(); // 系统控制初始化
DINT; // 禁止全局中断
// 初始化SCI模块
SCI_Init();
// 使能SCI接收中断
SciaRegs.SCICTL2.bit.RXBKINTENA = 1;
// 配置SCI接收中断的优先级
PieCtrlRegs.PIEIER9.bit.INTx1 = 1;
IER |= M_INT9;
EINT;
// 无限循环
while (1)
{
// 主程序代码
// ...
}
}
这段代码展示了如何在CCS环境下的DSP28335芯片上实现简单的串口通信功能,当接收到的数据为'5A'时,芯片会回传'5A',其他输入则忽略。
首先,在 SCI_Init() 函数中进行SCI模块的初始化配置。
然后,定义了一个SCI接收中断处理函数 SCI_Rx_ISR(),在其中判断接收到的数据是否为'5A',如果是则通过SCI发送数据寄存器 SciaRegs.SCITXBUF 输出'5A'。
在 main() 函数中,使能SCI接收中断并配置中断优先级,然后进入一个无限循环,在循环中可以添加其他的程序逻辑。
原文地址: https://www.cveoy.top/t/topic/pd2M 著作权归作者所有。请勿转载和采集!