【单片机】MSP430F149单片机,晨启,通信聊天,串口收发器

2023-10-18 16:10

本文主要是介绍【单片机】MSP430F149单片机,晨启,通信聊天,串口收发器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

三、通信聊天
任务要求:
用单片机实现与串口调试助手的通信,具体功能如下:
1、通过蓝牙模块(需要领取,如果使用笔记本电脑做该题,则只需要领取一个蓝牙模块,如果使用台式机则需要领取两个蓝牙模块外加一条USB转TTL线,尽量使用笔记本电脑,简化工作,学院的USB转TTL线并不多)实现与电脑串口调试助手的连接;(15分)
2、设定单片机的两种运行模式:接收消息/发送消息,同时按下按键A6和A7进行模式切换;(20分)
3、实现由电脑串口调试助手发送字母或数字给单片机,并由开发板OLED显示出来。(20分)
4、从PC端串口助手发送一个字符串到单片机,OLED显示屏显示该字符串,并通过按键上下左右选择其中任意一个字符,并将选中的字符发送回PC端。其中按键A4为上移方向、A5为下移方向、A6为左移方向、A7为右移方向。(25分)
5、单片机发送字符成功后流水灯亮起,接收到消息后蜂鸣器发出短暂声响。(20分)

附加题:
自行编写上位机软件与单片机通信,编程语言不限,基本功能必须有发送数据和接收数据并显示的功能。

【注释】
1、已提供串口调试助手软件;
2、蓝牙模块需要同学们自己外接,手柄板上有现成的接口,如需详细了解其引脚连接,可查看手柄板原理图。此部分涉及知识为串口通讯,蓝牙模块更多信息请参考说明书或网络资料。
3、请同学们根据自己情况搭配杜邦线(学院每位同学提供五根)与口袋开发板外接引脚(排针)连接,详见实验板数据手册。

在这里插入图片描述

部分程序:

/** 引脚说明:* KEY:* P1.2 返回1  在发送模式下,按一下就发送字符* P1.3 返回2  上 只有在发送模式下可以用* P1.4 返回3  下 只有在发送模式下可以用* P1.5 返回4  左 只有在发送模式下可以用* P1.6 返回5  右 只有在发送模式下可以用* 时按P1.5 P1.6 返回6  切换接收/发送* BEEP:P5.6* 指示灯:P6.7* 8个LED:P4* OLED CS P3.0    DC P2.7   RST P2.6 D1 P3.1   D0 P3.3* 蓝牙串口UART1:P3.6tx   P3.7rx 9600波特率* 功能说明:* 1 总体说来系统是一个聊天功能* 2 依靠同时按P1.5 P1.6 来修改系统为发送模式或者是接收模式* 3 接收模式状态下指示灯点亮,发射模式下只是灯不亮* 4 接收模式下单片机可以接收电脑发送的字符串,每接受一帧字符串单片机蜂鸣器就要响一声* 接收的字符串全部存入暂存区并在oLED中显示出来,最多可以接收64个字符* 5 发送模式下,用户可以通过上下左右按键选择某一个字符* OLED会将选择的字符以不一样的方式显示出来* 中一个字符后可以按1.2按键将选中的字符发送到电脑* 发送成功流水灯会亮一下* 特殊说明:* 1 转接板上面有复位按键* 2 蓝牙模块使用5伏直流电压供电* 3 使用的是串口1* 4 user.c里面存放初始化程序和按键检测程序* 5 isr.c里面存放定时器中断程序和串口接收中断程序 定时器中断程序中会有判断流水灯和判断接收一帧数据是否完毕的逻辑* 6 task_oled.c里面存放oLED的显示驱动代码*/char taskBusy;
void main( void )
{unsigned char	temp;char		len_temp = 0;WDT_Init();                                                                             /*看门狗设置 */Clock_Init();                                                                           /* 系统时钟设置 */User_SystemInit();                                                                      /* 用户控制系统初始化函数 */Timer_Init( TimerA, 10000 );                                                            /* 10ms定时器中断 */UART_Init( UART0, 9600 );                                                               /* 初始化串口 */GPIO_Set( P6, 7, sys_mode_rt );                                                         /* sys_mode_rt=0蓝色灯点亮 表示处于接收模式 =1不亮表示处于发送模式 */memset( receive_data_buff, ' ', 64 );                                                   /* 初始化数据暂存区 */TBCCTL0 = CCIE;                         /* CCR0 interrupt enabled */TBCCR0	= 1000;TBCTL	= TBSSEL_2 + MC_0 + ID_3; //关闭蜂鸣器_EINT();                                                                                /* 打开总中断 */while ( 1 ){/* 更新接收到的字符串 */if ( len_temp != receive_data_length )                                          /* 检测到接收字符串长度有变化=只是说有新接收到一帧数据 */{len_temp = receive_data_length;                                         /* 把新的数据长度负责给暂存变量 */if ( receive_data_length <= 64 ){OLED_DisplaysCertainLengthString( receive_data_buff, 64 );      /*有新接收到一帧数据=就需要重新刷新显示 */}}//蜂鸣器控制if ( receive_finish == 2 )                                                      /* 这个条件表示一帧数据已经接收完毕 */{receive_finish = 10;                                                    /* 重新将receive_finish负值为一个不相关的变量 不是012即可 */TBCTL	= TBSSEL_2 + MC_1 + TBCLR + ID_3; //打开蜂鸣器delay_ms(30);TBCTL	= TBSSEL_2 + MC_0 + ID_3; //关闭蜂鸣器GPIO_Set( P5, 6, 0 );                                                   /* 关闭蜂鸣器 */}temp = TestKeyInput();                                                          /* 检测按键 */if ( temp ){ProcessKeyInput( temp );                                                /* 处理按键 */}if ( taskBusy == 1 ){User_RealTimeTask( 100 );                                               /* 实时控制任务 */}else {User_IdleTask();}}
}/* Timer B0 interrupt service routine */
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B( void )
{GPIO_turn( P5, 6 );
}

全部代码:https://github.com/xddun/blog_code_search

这篇关于【单片机】MSP430F149单片机,晨启,通信聊天,串口收发器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/233681

相关文章

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

如何打造个性化大学生线上聊天交友系统?Java SpringBoot Vue教程,2025最新设计思路

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小程序/安卓实战项目 大数据实战项目 ⚡⚡文末获取源码 文章目录

C++编程:ZeroMQ进程间(订阅-发布)通信配置优化

文章目录 0. 概述1. 发布者同步发送(pub)与订阅者异步接收(sub)示例代码可能的副作用: 2. 适度增加缓存和队列示例代码副作用: 3. 动态的IPC通道管理示例代码副作用: 4. 接收消息的超时设置示例代码副作用: 5. 增加I/O线程数量示例代码副作用: 6. 异步消息发送(使用`dontwait`标志)示例代码副作用: 7. 其他可以考虑的优化项7.1 立即发送(ZMQ_IM

基于stm32的河流检测系统-单片机毕业设计

文章目录 前言资料获取设计介绍功能介绍具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机设计精品

linux下TCP/IP实现简单聊天程序

可以在同一台电脑上运行,在一个终端上运行服务器端,在一个终端上运行客户端。 服务器端的IP地址要和本地的IP相同,并分配端口号,客户端的默认设置为本地,端口号自动分配。 服务器端: #include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sys/types.