|

楼主 |
发表于 2018-10-22 13:12:46
|
显示全部楼层
为何我开启之后就像死机了呢?
void bsp_Init(void)
{
/*
由于ST固件库的启动文件已经执行了CPU系统时钟的初始化,所以不必再次重复配置系统时钟。
启动文件配置了CPU主时钟频率、内部Flash访问速度和可选的外部SRAM FSMC初始化。
系统时钟缺省配置为72MHz,如果需要更改,可以修改 system_stm32f10x.c 文件
*/
/* 使能CRC校验, 用于开启STemWin的使用 */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
/* 优先级分组设置为4 */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
bsp_InitDWT();
bsp_InitUart(); /* 初始化串口 */
bsp_InitLed(); /* 初始LED指示灯端口 */
//bsp_InitKey(); /* 初始化按键 */
bsp_InitI2C();
DS3231_Init();
LCD_InitHard(); /* 初始化显示器硬件(配置GPIO和FSMC,给LCD发送初始化指令) */
bsp_InitADS1256();
ADS1256_CfgADC(ADS1256_GAIN_1, ADS1256_500SPS, 1);
ADS1256_StartScan();
}
void ADS1256_StartScan(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
/* 使能SYSCFG时钟 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
/* 连接 EXTI Line6 到 PB6 引脚 */
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource6);
/* 配置 EXTI LineXXX */
EXTI_InitStructure.EXTI_Line = EXTI_Line6;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; /* 下降沿(等待 DRDY 由1变0的时刻) */
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
/* 设置NVIC优先级分组为Group2:0-3抢占式优先级,0-3的响应式优先级 */
// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
/* 中断优先级配置 最低优先级 这里一定要分开的设置中断,不能够合并到一个里面设置 */
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0X01;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
/* 开始扫描前, 清零结果缓冲区 */
{
uint8_t i;
g_tADS1256.Channel = 0;
for (i = 0; i < 8; i++)
{
g_tADS1256.AdcNow = 0;
}
}
}
程序仿真之后,如下图所示!
|
-
|