Thread 中讨论的其他器件: controlSUITE、 C2000WARE
工具/软件:Code Composer Studio
您好!
我正在尝试让 Piccalo TMS320f28032 DSP 使用 LINTX 和 LINRX。 我创建了一个 init()函数,然后使用中断函数的地址作为 PIE 中断的输入。
线路
LinaRegs.SCICLEARINT.BIT.CLRTXINT = 1;//清除 TX 中断标志...... 有毒
为我提供错误
1.链接过程中遇到#10010错误;"U:/code/IdCooker/../app/out_IdCooker/IdCooker.out "未构建 IdCooker C/C++问题
2.#10234-D 未解析的符号仍然是 IdCooker C/C++问题
3.未解析的符号_LinaRegs、首先在 U:/code/out_IdCooker/Lin_debug.obj IdCooker C/C++ problem 中引用
然后链接失败。 如果我注释掉这一行代码、它会起作用。 该函数如何在该函数中不起作用而在 init 函数中起作用?
这是代码
#include "DSP28x_Project.h"
#include "DSP2803x_PIECTRL.h"
#include "DSP2803x_Lin.h" // DSP2803x 头文件包含文件
#include "Lin_debug.h"
/*********
*本地常量和宏(模块专用
/
/
*本地常量和宏(模块专用
/
/
*本地数据类型(私有类型定义/结构/枚举
/
/
*全球数据(非公开至预测
//PROT_PARAM_S
g_sPanTemp;
/*********
*本地功能原型(模块专用
///void
ParamStaus (Int32 i32Current Data, PROT_Param_S * psParam);
/*---------------
功能 :InitBasicProt
模块 :BasicProt.c
-------------------------------------------------------------------------------------------------------------------------------------------------- */
void InitLin( void ){
EALLOW;
/*重置 LIN 串行*/
LinaRegs.SCIGCR0.bit.RESET = 1;
LinaRegs.SCIGCR0.bit.RESET = 0;
LinaRegs.SCIGCR1.bit.SWnRST = 0;//软件处于复位状态必须在初始化结束时变为高电平
/*全局控制寄存器1*/
PieVectTable.LIN0INTA =&LIN_Tx_ISR;
LinaRegs.SCIGCR1.bit.COMMMODE = 1;// ID4和 ID5用于长度控制
LinaRegs.SCIGCR1.bit.TIMINGMODE = 0;仅限//SCI
LinaRegs.SCIGCR1.bit.PARITYENA=0;//ID 奇偶校验被禁用
LinaRegs.SCIGCR1.bit.parity = 0;//奇数奇偶校验
LinaRegs.SCIGCR1.bit.STOP = 0;//一个停止位
LinaRegs.SCIGCR1.bit.CLK_MASTER = 1;//此节点为主节点
LinaRegs.SCIGCR1.bit.LINMODE = 1;// LIN 模式被启用
LinaRegs.SCIGCR1.bit.SLEEP = 0;//禁用睡眠模式
LinaRegs.SCIGCR1.bit.adt = 0;//禁用自动波特率调整
LinaRegs.SCIGCR1.bit.BUFMODE = 0;//多缓冲模式被禁用
LinaRegs.SCIGCR1.bit.CTYPE = 0;//经典校验和
LinaRegs.SCIGCR1.bit.HGENCTRL = 1;//掩码过滤比较0xFF 的类型必须写入 LINMASK 寄存器
LinaRegs.SCIGCR1.bit.loopback = 0;//回送被禁用
LinaRegs.SCIGCR1.bit.CONT= 1;//计数器仍在调试模式下运行
LinaRegs.SCIGCR1.bit.RXENA= 1;//允许接收器将数据传输到缓冲器
LinaRegs.SCIGCR1.bit.TXENA= 1;//启用数据传输
LinaRegs.SCIGCR2.bit.SC = 1;//发送校验和
LinaRegs.SCIGCR2.bit.CC = 0;//无比较校验和
/*设置中断寄存器*/
LinaRegs.SCISETINT.BIT.SETTXINT = 0;//初始化设置 TX 中断低电平将需要稍后设置为高电平
LinaRegs.SCICLEARINT.BIT.CLRTXINT = 1;
LinaRegs.SCISETINTLVL.bit.SETTXINTLVL = 0;//清除中断级别位
LinaRegs.SCICLEARINTLVL.bit.CLRTXINTLVL = 1;//清除中断级别位
LinaRegs.SCIFLR.bit.IDTXFLAG = 1;//清除中断级别位
LinaRegs.SCIINTVECT0.ALL = 0x000C;//设置为12
/*格式控制寄存器*/
LinaRegs.SCIFORMAT.ALL = 0x00000707;
/*波特率控制 LM_CLK (30Mhz)/16 p = 15 M = 4这意味着115200 */
LinaRegs.BRSR.ALL = 0x0400000F;
/*需要*/
LinaRegs.SCIGCR1.bit.SWnRST = 1;//软件处于复位状态必须在初始化结束时变为高电平
EDIS;
}
/*********
功能 :LIN_Tx_ISR
输入 :无
输出 :无
说明 :接收中断服务例程。
(二 /
中断空 LIN_Tx_ISR (空)
{
LinaRegs.SCICLEARINT.BIT.CLRTXINT = 1;//清除 TX 中断标志...... 有毒
的 PieCtrlRegs.PIEACK.all = PIEACK_group9;
IER |= M_INT3;// 0x0004这在 UART 上,但我不知道
这是什么用于 EINT;
}/*--
文件结束--------- *






