TM4C123G使用ADC和GPIO引起FaultISR

2019-03-24 11:20发布

初学M4遇到的问题,我在ti官方的例程timers上加入了ADC模块的使用,同时使用了一个普通IO口驱动的显示屏,发现一旦运行就会进入FaultISR函数。查阅Program Status Register (xPSR) 寄存器,为0x01000003,应该是出现了hard fault。但是我不知道是什么原因。1.去掉ADC部分程序可以运行,显示屏工作正常;2.加入ADC初始化程序,程序调试时可以工作,掉电后重新上电无法工作;3.加入ADC初始化及调用函数,程序运行后很快进入FaultISR函数。请问大家知道是什么原因吗?工程见附件。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
nemo1991
1楼-- · 2019-03-24 16:22
 精彩回答 2  元偷偷看……
nemo1991
2楼-- · 2019-03-24 20:28
< :TI_MSP430_内容页_SA7 --> ADC调用在while (1)循环中:

while(1)
{
//show power-on time
show_time(79,0,Power_On_time);

//show internal temperature of the core
/*ADCIntClear(ADC0_BASE, 1);
ADCProcessorTrigger(ADC0_BASE, 1);
while(!ADCIntStatus(ADC0_BASE, 1, false)){}
ADCSequenceDataGet(ADC0_BASE, 1, ui32ADC0Value);
ui32TempAvg = (ui32ADC0Value[0] + ui32ADC0Value[1] + ui32ADC0Value[2] + ui32ADC0Value[3] + 2)/4;
ui32TempValueC = (1475 - ((2475 * ui32TempAvg)) / 4096)/10;*/
//LCD_P6x8Int(85,2,Main_Loop_Count);

//show main loops
Main_Loop_Count++;
if (Main_Loop_Count > 9999999) Main_Loop_Count = 0;
LCD_P6x8Int(85,7,Main_Loop_Count);
}
Triton.zhang
3楼-- · 2019-03-24 23:36
While程序中加个延时测试一下.
azhiking
4楼-- · 2019-03-25 02:40
 精彩回答 2  元偷偷看……
nemo1991
5楼-- · 2019-03-25 07:11
azhiking 发表于 2014-3-7 13:09
没看到你i设置ADC的采样速率嘛

这个可以不设置,一般没有问题。
nemo1991
6楼-- · 2019-03-25 07:25
Triton.zhang 发表于 2014-3-7 11:44
While程序中加个延时测试一下.

什么意思?

一周热门 更多>

相关问题

    相关文章