MSPG3507(十九)——蓝牙接收数据显示在OLED,滴答定时器延时500MS


#include "ti_msp_dl_config.h"
#include "OLED.h"
#include "stdio.h"




volatile unsigned int delay_times = 0;
 


//搭配滴答定时器实现的精确ms延时
void delay_ms(unsigned int ms) 
{
    delay_times = ms;
    while( delay_times != 0 );
}      




int a=0;
volatile uint8_t gEchoData = 0;


int main(void)
{

    uint8_t str[64];


    SYSCFG_DL_init();
    //NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);
   // DL_TimerA_startCounter(TIMER_0_INST);

     delay_ms(500) ;
    OLED_Init();
	OLED_Fill(0x00);

    NVIC_ClearPendingIRQ(UART_2_INST_INT_IRQN);                                //先清除中断,防止直接进中断
    NVIC_EnableIRQ(UART_2_INST_INT_IRQN);   






    while (1)
     {
        sprintf((char *)str, "%d", a);
        OLED_ShowStr(0,4, str,2);
      

    }
}


void UART_2_INST_IRQHandler(void)
{
    switch (DL_UART_Main_getPendingInterrupt(UART_2_INST)) {
        case DL_UART_MAIN_IIDX_RX:
            gEchoData = DL_UART_Main_receiveData(UART_2_INST);
            if (gEchoData==0x00)
            {
                    a=0;

            }

             if (gEchoData==0x01)
            {
                    a=1;

            }


             if (gEchoData==0x05)
            {
                    a=2;

            }

             if (gEchoData==0x07)
            {
                    a=3;

            }

             if (gEchoData==0x03)
            {
                    a=4;

            }


           
            break;
        default:
            break;
    }
}



void SysTick_Handler(void)
{
    if( delay_times != 0 )
    {
        delay_times--;
    }
}


 配置:大部分与OLED那一篇文章相同,另外加上这些:

很抱歉,我无法提供完整的代码,但我可以给您一些基本的思路和代码框架。 首先,您需要安装MSPG2553的开发环境,以及温湿度传感器和OLED显示屏的库。然后,您可以按以下步骤编写代码: 1. 初始化MSPG2553和传感器、OLED显示屏。 2. 读取温湿度传感器的数据。 3. 将温湿度数据转换为字符串。 4. 在OLED显示屏上显示温湿度数据。 以下是可能的代码框架: ```c #include <msp430.h> #include "dht11.h" // 温湿度传感器库 #include "ssd1306.h" // OLED显示屏库 void main(void) { // 初始化MSPG2553 WDTCTL = WDTPW + WDTHOLD; // 停用看门狗定时器 // 初始化传感器 dht11_init(); // 初始化温湿度传感器 // 初始化OLED显示屏 ssd1306_init(); // 初始化OLED显示屏 while (1) { // 读取温湿度传感器的数据 float temperature, humidity; dht11_read(&temperature, &humidity); // 将温湿度数据转换为字符串 char temperature_str[10], humidity_str[10]; sprintf(temperature_str, "%.2f", temperature); sprintf(humidity_str, "%.2f", humidity); // 在OLED显示屏上显示温湿度数据 ssd1306_clear(); // 清空屏幕 ssd1306_gotoxy(0, 0); // 设置光标位置 ssd1306_puts("Temperature:"); // 显示文字 ssd1306_puts(temperature_str); // 显示温度 ssd1306_gotoxy(0, 1); // 设置光标位置 ssd1306_puts("Humidity:"); // 显示文字 ssd1306_puts(humidity_str); // 显示湿度 ssd1306_refresh(); // 刷新屏幕 } } ``` 请注意,这只是一个大致的框架,您需要根据您使用的具体传感器和显示屏的库进行修改和调试。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值