MSP430F149学习之路——UART
代码一:
#include <msp430x14x.h>
void int_clk()
{
BCSCTL1 &= ~XT2OFF;
BCSCTL2 |= SELM_2 + SELS;
do
{
IFG1 &= ~OFIFG;
for(int i=;i<;i++)
_NOP();
}while((IFG1 & OFIFG)!=);
IFG1 &= ~OFIFG;
}
void int_usart()
{
U0CTL |= SWRST; //复位串口
U0CTL |= CHAR; //8位数据
U0TCTL |= SSEL1; //选择SMCLK
//波特率19200
U0BR1 = 0X01;
U0BR0 = 0XA0;
UMCTL0 = 0XC0; ME1 |= UTXE0 + URXE0; //使能接收和发送
U0CTL &= ~SWRST; //清楚串口复位信号 IE1 |= URXIE0; //使能接收中断
P3SEL |= BIT4 + BIT5;
P3DIR |= BIT4;
}
void sent_byte(unsigned char data)
{
while((IFG1 & UTXIFG0)==);
U0TXBUF = data;
}
#pragma vector=UART0RX_VECTOR
__interrupt void UART0(void)
{
unsigned char data = ;
data = U0RXBUF;
sent_byte(data);
}
int main()
{
WDTCTL = WDTPW + WDTHOLD;
int_clk();
int_usart();
_EINT();
return ;
}
代码二:
#include <msp430x14x.h>
void int_clk()
{
BCSCTL1 &= XT2OFF;
BCSCTL2 |= SELS + SELM_2;
do
{
IFG1 &= ~OFIFG;
for(int i=;i<;i++)
_NOP();
}while((IFG1 & OFIFG)!=);
IFG1 &= ~OFIFG;
}
void int_usart()
{
U0CTL |= SWRST;
U0CTL |= CHAR;
U0TCTL = SSEL1;
//
U0BR1 = 0X03;
U0BR0 = 0X41;
U0MCTL = 0X00; ME1 |= UTXE0 + URXE0;
U0CTL &= ~SWRST;
IE1 |= URXIE0; P3SEL |= BIT4 + BIT5;
P3DIR |= BIT4;
}
void send_byte(unsigned char data)
{
while((IFG1 & UTXIFG0)==);
U0TXBUF = data;
}
//串口0发送字符串函数
/*void Print_Str(char *s)
{
while(*s != '\0')
{
send_byte(*s++);
}
}
*/
#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{
unsigned char data;
data = U0RXBUF;
P6OUT = data;
send_byte(data);
}
void main()
{
WDTCTL = WDTPW + WDTHOLD;
P6DIR = 0XFF;
P6OUT = 0XFF;
int_clk();
int_usart();
_EINT();
// Print_Str("hello!\n");
}
MSP430F149学习之路——UART的更多相关文章
- 【单片机入门】(三)应用层软件开发的单片机学习之路-----UART串口通讯和c#交互
引言 在第一章博客中,我们讲了Arduino对Esp32的一个环境配置,以及了解到了常用的一个总线通讯协议,其中有SPI,IIC,UART等,今天我为大家带来UART串口通讯和c#串口进行通讯的一个案 ...
- MSP430F149学习之路——AD
代码一:Timer_A触发转换 #include <msp430x14x.h> void main() { WDTCTL = WDTPW + WDTHOLD; P6SEL |= BIT0; ...
- MSP430F149学习之路——蓝牙模块
注意蓝牙模块的接法! #include <msp430x14x.h> ]; ; void int_clk() { BCSCTL1 &= ~XT2OFF; BCSCTL2 |= SE ...
- MSP430F149学习之路——SPI
代码一: //****************************************************************************** //Description: ...
- MSP430F149学习之路——比较器Comparaor_A
代码一: #include <msp430x14x.h> ; void int_clk() { BCSCTL1 &= ~XT2OFF; BCSCTL2 |= SELM_2 + SE ...
- MSP430F149学习之路——PWM信号
代码一: /******************************* 程序功能:ACLK=32768Hz PWM波 T=512/32768 占空比75% ******************** ...
- MSP430F149学习之路——捕获/比较模式
1.捕获模式 #include <msp430x14x.h> unsigned ,last1=; unsigned ,j=; void mian(void) { WDTCTL = WDTP ...
- MSP430F149学习之路——时钟1
1.看门狗产生方波 #include <msp430x14x.h> void main() { WDTCTL = WDT_MDLY_32; IE1 |= WDTIE; P1DIR |= B ...
- MSP430F149学习之路——时钟2
代码一: /************************** 功能:LED每隔1秒闪烁一次 ****************************/ #include <msp430x14 ...
随机推荐
- 无法找到类:java.lang.ClassNotFoundException: com.mysql.jdbc.driver
转载自:http://blog.csdn.net/huangbiao86/article/details/6428608 问题描述:连接数据库,而明明已经将mysql-connector-java-5 ...
- 一款灵活好用的日历控件Kalendae
Kalendae是一款纯js不依赖任何js库的日历控件,可以轻松实现显示月份数量,当前选中多个日期,并可以按照周等你想要的格式去定制选中项. 下载地址:GitHub/Kalendae 第一步:Kale ...
- [linux basic]基础--信号
线程->信号信号,是unix和linux系统响应某些条件而产生的一个事件.接收到该信号的进程会相应地采取一些行动.raise生成表示一个信号的产生catch捕获表示接受到一个信号的产生:信号是由 ...
- (WPF) MVVM: ComboBox Binding, XML 序列化
基本思路还是在View的Xmal里面绑定ViewModel的属性,虽然在View的后台代码中也可以实现binding,但是还是在Xmal里面相对的代码量要少一些. 此例子要实现的效果就是将一个List ...
- C++ 类的动态组件化技术
序言: N年前,我们曾在软件开发上出现了这样的困惑,用VC开发COM组件过于复杂,用VB开发COM组件发现效率低,而且不能实现面向对象的很多特性,例如,继承,多态等.更况且如何快速封装利用历史遗留的大 ...
- 文件 FIFO队列
<?php /** * Filefifo.php 文件型FIFO队列 */ class Filefifo { /** * $_file_data, 数据文件的路径 */ private $_fi ...
- ICANN认证企业列表
查询地址: http://www.internic.net/alpha.html
- python 抓取javascript 动态数据
1. 新安装一个python库 :~$ sudo pip install seleniumhq 2. 编写代码: 以获取百度百科点赞数为例 import selenium from selenium ...
- wireshark1.8捕获无线网卡的数据包——找不到无线网卡!
问题说明:奇怪的是,我线网卡明明有的,是interl的型号,可是wireshark总是找不到,如下: 奇了怪了,没有!原来是如下的: 实际上这块无线网卡是存在的,只不过由于兼容或驱动的原因无法显示型号 ...
- ASPxGridView改变列颜色
protected void ASPxGridView1_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs ...