标题:
MSP430F4152 PM2.5模块通讯显示源程序
[打印本页]
作者:
fansanderen
时间:
2020-8-12 21:15
标题:
MSP430F4152 PM2.5模块通讯显示源程序
分享一个液晶显示的例程 IAR for MSP6.3,主要用于PM2.5模块的显示
#include <msp_RfValve_golbal.h>
//*****************************************************************************
//
//! Perform System clock initialize.
//! ACLK = XT1CLK = 32.738kHz MCLK = SMCLK = default ~ 1.04MHz
//
//! \no param
//!
//! \return None.
//
task_t task[TASKS_MAX] = {
[TASK_BASE] = {1, 0, 0, 0, 500, task_baserun}, // 基础任务
[TASK_HMI] = {0, 0, 0, 0, 100, task_Disp}, // 人机交互
[TASK_AD] = {0, 0, 0, 10, 5000, task_AdInt}, // 温度采集
[TASK_CIRCLE_DIS] = {0, 0, 0, 0, 80, task_circle_dis}, // GPRS数据上传
[TASK_IOSCAN] = {0, 0, 0, 0, 20, task_ioscan},// IO扫描刷新
[TASK_BKLED] = {0, 0, 0, 0, 20, task_bkrun},
[TASK_FLASH] = {0, 0, 0, 10, 20, task_flash},
// ...
};
tRomA_Ins RomA_Ins=
{
.Strs_TolTime=900,
.PM25_SetHm=200,
.PM25_SetMl=500,
.Strs_AlamPer=10,
};
//*****************************************************************************
void CLOCK_Config()
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
SCFQCTL = SCFQ_4M;//121;
FLL_CTL0 = DCOPLUS + XCAP5_5F;// (121+1) x 32768 x 2 = 7.99 Mhz
FCTL2 = FWKEY + FSSEL_2 + FN0 + FN1 + FN4; // 选择smclk/20 = 400kHz
SCFI0 |= FN_2;
do
{
clear();
BKLED_ON;
//Disp_off();
IFG1 &= ~OFIFG; // Clear osc fault flag
__delay_cycles(0xfff);//for (i = 0; i < 1000; i++); // Delay for osc to stabilize
} while(IFG1 & OFIFG);
}
//*****************************************************************************
//TA0_T0
//*****************************************************************************
void TA0_Config()
{
/*
TACCR0=65; //1ms扫描
TACTL |= TAIE+MC_1+TASSEL_1+TACLR; //Timer_A interrupt enable
TACTL&= ~TAIFG;
*/
}
//*****************************************************************************
//SoftRX setup
//*****************************************************************************
//*****************************************************************************
//Timer1_A3 setup
//*****************************************************************************
//BT
void Bt_Config()
{
BTCTL=BT_fCLK2_ACLK+BT_ADLY_1;
IE2|=BTIE;
}
//*****************************************************************************
//Power_ADInit()
//*****************************************************************************
//*****************************************************************************
//Power_ADInit()
//*****************************************************************************
void Lcd_Config()
{
LCDACTL|=LCD4MUX+LCDFREQ_32+LCDON;
P5SEL=0X0FF;
P7SEL|=BIT6;
P1SEL|=BIT4+BIT5; //413单片机需要设置
LCDAPCTL0=0x7F;
// LCDAPCTL1|=LCDS32;
clear();
}
//*****************************************************************************
//Port_Config()
//*****************************************************************************
void Port_Config()
{
Key_INIT();
Led_Port_Dir|=Led_Pin;
Relay_DIR|=RelayH_BIT+RelayL_BIT;
BKLED_OFF;
}
//*****************************************************************************
void SYS_INT()
{
CLOCK_Config();
Port_Config();
TA0_Config();
USART_INT();
Lcd_Config();
Bt_Config();
RX_Ready();
// RFInit();
Work_Timing_Flags.Tc_Work_Mode=Work_Off;
}
// ************************************************************************
//=================================================================================
void Err_Check()
{
Work_Timing_Flags.RS485_COMM_Time++;
if(Work_Timing_Flags.RS485_COMM_Time>UtCOMM_ERR_Time)//
{
Work_Timing_Flags.RS485_COMM_Time=0;
NFformat.Err_inf.Tc_comm=OnErr;
USART_INT();
}
}
// ****温控器状态监测********************************************************************
void Tc_Work_Check()
{
switch(Work_Timing_Flags.Tc_Work_Mode)
{
case(Work_Off):
Disp_Off();
break;
case(Work_On_Nomal):
Disp_On_Nomal();
break;
case(Work_On_Set):
Disp_On_Set();
break;
}
}
// ************************************************************************
void Work_Timing_Chenck()
{
wnl_process();
Err_Check();
// Ad_Int();
// Tc_Work_Check();
}
// ************************************************************************
void main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer // Disable the GPIO power-on default high-impedance mode
SYS_INT();
_EINT();
// WDTCTL=WDT_ARST_1000;
while(1)
{
task_process();
}
}
复制代码
PM25双通讯.7z
2020-8-13 04:14 上传
点击文件名下载附件
下载积分: 黑币 -5
372.6 KB, 下载次数: 10, 下载积分: 黑币 -5
PM2.5模块通讯显示
作者:
f556
时间:
2021-12-31 22:02
再次找F4152的时钟配置,找到了还是在51hei,谢谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1