TI中文支持网
TI专业的中文技术问题搜集分享网站

motorware工程中添加SCI接口

目前我用motorware中的lab_3a工程,想添加一个SCI端口做通讯用。为此在论坛学习了一下,也在一个其他demo工程中成功的使用SCI进行了收发操作,然而,在lab_3a工程中添加,却遇到了极大困难。我的操作如下:

1、在工程中添加了sci.c(原工程没有)

2,工程main函数中,初始化相关操作:

     2.1  在HAL_init(&hal,sizeof(hal))中添加   obj->sciAHandle  =  SCI_init((void *)SCIA_BASE_ADDR,sizeof(SCI_Obj)); 

     2.2  在HAL_setParams(halHandle,&gUserParams) 中添加   HAL_setupSciA(handle),在其中初始化SCI,始能收发及中断,配置SCI

     2.3 在上面的HAL_setParams(halHandle,&gUserParams) 中,修改 HAL_setupPeripheralClks(handle) 和HAL_setupGpios(handle),使能SCI时钟和配置IO;

     2.4 在PIE中开启第9组IER_int1\int2始能(这点有点疑惑)

     2.5 在 HAL_initIntVectorTable(halHandle)中添加  pie->SCITXINTA = &sciaTxFifoIsr,指向我的服务程序;接收中断同样处理;

3  上述操作做完后,主函数死循环前调用如下函数 SCI_write(sciAHandle,0x00a7);

     0xa7是我随便写的,就是发送个A7;该函数也很简单,就是对发送数据寄存器赋值sci->SCITXBUF = data;

    然而,我发现,我的数据,压根就没入SCITXBUF ,当然,后面的发送中断也就无从谈起。接收也一样。   等于是SCI现在完全不能使用。

几点说明:

1、硬件环境为DRV8301_69M_KIT套装,不怀疑硬件,因为换一个串口例程的工程,没问题;

2、仿真中观测各寄存器,GPIO、PCLKCR0等与之相关的没发现啥问题;PIEEIR9感觉有点疑惑,写1了,但是程序运行后被清0了?

3、SCIA也按照我的初始化内容配置了,不过,SCITXBUF始终为0,写不进去!!

4,串口例程学了,现在暂时没发现从过程来说有啥遗漏;不想移植的事,这俩工程在结构体写法等差异太大,而且调用的路径挺深,几乎没有复制粘贴拿来用的可能性

请问,我现在如何操作呢?

                                           
                                         

     

Shan:

没有人回答吗

Green Deng:

额,抱歉回复晚了,非常感谢你的反馈,描述的很详细,应该对以后有此需求的工程师会帮助很大。

赞(0)
未经允许不得转载:TI中文支持网 » motorware工程中添加SCI接口
分享到: 更多 (0)