历史上的今天
返回首页

历史上的今天

今天是:2024年10月30日(星期三)

正在发生

2019年10月30日 | msp430学习笔记之uart

2019-10-30 来源:eefocus

1 相关知识

MSP430系列,usart模块的波特率值设定是通过以下三个参数决定的:UxBR0,UxBR1,UxMCTL

波特率=BRCLK/N 

BRCLK:时钟源,可以通过寄存器设定何为时钟源; 


N:波特率产生的分频因子。N=UxBR1+UxBR0+UxMCTL,其中UxBR1+UxBR0为整数部分,UxMCTL为设定小数部分 。


举个例子:波特率=9600,时钟源=32.768kHz

N=32768/9600=3.41

很明显:UxBR1+UxBR0=13,即UxBR1=0,UxBR0=13。


首先把小数部分0.41×8=3.28,取整后为3。这个5的意思就是在UxMCTL中的8位里要有3个1,剩下来的就是怎么分配这3个1的位置了。注意一点 就是这3个1要相对分散点。


因此:UBR00 = 0x03;UBR10 = 0x00;UMCTL0 = 0x4A; 


2 代码实现

     

//本平台 msp430f149

#include

 

void usart0_config(void){

P3SEL |= 0x30;                            // P3.4,5 = USART0 TXD/RXD

ME1 |= URXE0 + UTXE0;                     // Enable USART0 T/RXD

UCTL0 |= CHAR;                            // 8-bit character

UTCTL0 |= SSEL0;                          // UCLK = ACLK

UBR00 = 0x03;                             // 32k/9600 - 3.41

UBR10 = 0x00;                             //

UMCTL0 = 0x4A;                            // Modulation

UCTL0 &= ~SWRST;                          // Initialize USART state machine

IE1 |= URXIE0;                            // 使能USART0的接收中断

_EINT();   //开总中断,整个系统中断使能

}

 


//字符发送函数

void send_char(char sendchar){

while (!(IFG1 & UTXIFG0));    //等待发送寄存器为空         

TXBUF0 = sendchar;

}

 

//字符串发送函数

void send_string(char *ptr){

while(*ptr != ''){

send_char(*ptr++);                  // 发送数据

}

send_char('n'); //发送换行指令     

}

 

int main(){

WDTCTL = WDTPW + WDTHOLD;     //默认MCLK = DCO

usart0_config();

P2DIR = 0x80;

P2OUT = 0xff;

while(1){

}

return 0;

}

 

 

//usart0 interrupt receive function

#pragma vector=UART0RX_VECTOR

 

__interrupt void usart0_rx (void)

{

if( RXBUF0 == 0x00 ){    //收到0时,led灯亮,并发送 "led is on"

P2OUT = 0x7f; 

send_string("led is on");

}

if( RXBUF0 == 0x01 ){ //收到1时,led灯亮,并发送 "led is off"

P2OUT = 0xff;

send_string("led is off");

}

}


3 实验结果

每次发送0调试助手都可以收到 "led is on"并且led灯亮,发送1时led灯灭,同时调试助手显示"led is off",注意:16进制发送数据

推荐阅读

史海拾趣

Cressall Power Resistors公司的发展小趣事

在电子行业的早期,Cressall Power Resistors公司以其对电阻技术的深入研究而脱颖而出。公司研发团队通过不懈的努力,成功开发出一种新型的功率电阻器,具有更高的耐热性、更低的电阻值变化率以及更长的使用寿命。这一技术突破迅速得到了市场的认可,公司因此获得了大量的订单,业绩迅速增长。随着技术的不断完善和产品的持续升级,Cressall逐渐在功率电阻器市场树立了技术领先的地位。

High Voltage Semiconductor Inc公司的发展小趣事

为了更好地服务全球客户,美高测积极寻求与国际知名企业的合作。通过与半导体制造巨头台积电、英特尔等公司的合作,美高测不仅获得了先进的制造技术和市场洞察能力,还成功将其高压测试产品打入了这些巨头的供应链体系。同时,公司还与多个国家的科研机构建立了长期合作关系,共同开展前沿技术的研发和应用,进一步提升了公司的国际影响力。

珠海艾派克(APEXMIC)公司的发展小趣事

随着技术的不断进步,艾派克逐渐在打印机芯片领域取得了突破。公司成功研发出一系列从打印机主控SoC芯片到耗材加密芯片的全系列打印机芯片产品,不仅满足了国内市场的需求,还成功打入国际市场,成为全球打印机通用耗材芯片的重要供应商。这一成就标志着艾派克在打印机芯片领域的领先地位得到了进一步巩固。

Chyao Shiunn Electronic Industrial Ltd公司的发展小趣事

随着电子技术的不断发展,Chyao Shiunn意识到只有不断创新才能在竞争中立于不败之地。因此,公司加大了对研发的投入力度,成立了专门的研发团队,致力于开发具有自主知识产权的新技术和新产品。同时,公司还积极推动产业升级,引进先进的生产设备和管理理念,提高生产效率和质量水平。这些努力使得公司在电子行业中保持了领先地位。

B&B Electronics Manufacturing Company公司的发展小趣事

B&B公司成立于二战后的经济恢复期,最初是一家小型的电子制造公司。在创始人对电子技术的深厚兴趣和不懈追求下,公司逐渐在数据通信和商业应用领域找到了自己的定位。初步的产品线主要集中在转换器、控制器等基础电子设备上,为当时的工业自动化和过程控制提供了稳定可靠的解决方案。

Arduino公司的发展小趣事

随着Arduino平台的不断发展,为了满足不同项目和应用的需求,Arduino推出了多种不同规格和功能的主板。例如,Arduino Diecimila和Arduino Uno等主板的推出,进一步丰富了Arduino的产品线。这些主板各具特色,适用于各种场景,使得Arduino平台在物联网和嵌入式系统的开发中发挥了越来越重要的作用。

问答坊 | AI 解惑

先楫官方工程师干货:HPM6000电源管理系统功能和特性、功耗实测

作者:先楫应用工程师全立   本文介绍了HPM6000电源管理系统功能和特性,低功耗管理系统的功能和特性,低功耗应用开发的示例,最后基于HPM6300EVK开发板测试验证了HPM6300 MCU在各个电源模式下的功耗指标,方便用户快速评估和上 ...…

查看全部问答>

EEPROM擦写频率

EEPROM擦写频率   EEPROM擦写频率怎么理解?怎么根据擦写频率选择EEPROM还是flash?比如如下这个案列   每100ms采集一次数据,每秒存20个字节(实际使用清空EEPROM存储的数据是每周清除三次,这个是否也是擦写频率的一种?) ...…

查看全部问答>

产业升级|机智云工业DTU助力纺织行业智能化改造

本帖最后由 毛球大大 于 2022-11-9 19:51 编辑   作为第四次工业革命的重要基石,工业互联网为产业数字化提供了关键基础设施支撑和产业生态基础,成为数字经济创新发展的关键支撑。工业互联网的应用场景正在由销售、物流等 ...…

查看全部问答>

Qorvo:新的 “Matter” 协议是智能家居物联网市场增长的关键

预计今年晚些时候,连接物联网设备的新 Matter 标准将最终确定。如果您正在研究任何类型的智能家居解决方案,那么您有充分的理由对新的 “Matter”协议将为 Wi-Fi (和其他连接技术)带来的改变感到兴奋。  Qorvo 表示,“ ...…

查看全部问答>

最新发布的Matter技术小解

什么是Matter Matter 是智能家居无线连接技术的一种开放标准协议,可使家庭设备可以与任何经过Matter认证的Matter生态系统产品互联互通。 Matter技术小解 Matter是一个应用层规范,能够在任何支持IPv6的设备上运行。最初规范中支持的网络 ...…

查看全部问答>

电压VSWR&反射系数Γ

反射系数Γ,回波损耗RL和电压驻波比VSWR。但是这三个名词描述的其实是一个意思:反射波和入射波之间的关系。 反射系数Γ,回波损耗RL和电压驻波比VSWR之间的关系如下: 既然是一个意思,居然用了三个名词来描述,也足见反射在射频设 ...…

查看全部问答>

e络盟限时福利|《e选》---晒单

看到eeworld负责人发的e络盟有活动,赶紧上去看看,果然有活动,刚好最近DIY有需要用到电容,就买了几颗1000uF 35V和680uF 25V的电容,都是PANASONIC的,SF快递上海仓发货,三天就到了,非常快,哈哈,生命在于折腾,生命不息,折腾不止 &nb ...…

查看全部问答>

micropython新书《用 MicroPython 开发 Raspberry Pi Pico W》

本周发布了一本新书:用 MicroPython 开发 Raspberry Pi Pico W :Miguel Grinberg 用 Python 编程数字电路的简要介绍     欢迎阅读《用于 Raspberry Pi Pico W 的 MicroPython》,这本书将向您介绍令人兴奋的微控制器和小型互 ...…

查看全部问答>

Pimoroni银河独角兽开发板发布

Pimoroni银河独角兽开发板有一个巨大的 53 x 11 (583) RGB LED 矩阵,带有放大器和扬声器,核心是运行 Pimoroni 的 MicroPython 分支的 Raspberry Pi Pico W。 LED 可以在 14 位精度下以 300 fps 刷新。     技术指标: ...…

查看全部问答>

ROHM关于AC/DC的问答分享

Q、隔离型与非隔离型产品有何不同? A、隔离型的一次侧(AC线路)和二次侧(DC输出)是分离的,因此触电风险更低。而非隔离型的一次侧和二次侧是连接的,因此有触电的风险。 有些应用需要隔离型,有些则不需要。   Q、将IC的“NC ...…

查看全部问答>