历史上的今天
返回首页

历史上的今天

今天是:2025年01月05日(星期日)

正在发生

2021年01月05日 | 如何给MSP430开发板下载程序 并做一个串口实验

2021-01-05 来源:eefocus

1简介

我们需要下面这些软件
在这里插入图片描述
CH340驱动软件:是使用BSL下载程序的话,电脑需要和单片机通信,他们之间的桥梁就是CH340芯片,电脑想要识别CH340芯片就需要驱动。下载程序需要使用CH340芯片,让单片机接受指令也需要使用CH340芯片,总之电脑和单片机之间的通信就是靠CH340芯片。
IAR软件:我们需要在这个软件里面写c代码,然后利用这个软件的编译功能,将c代码编译成hex文件,hex文件就是机器文件,单片机依靠这个文件来工作,这个文件最终是要下载到单片机里面去的。
串口助手软件:下载程序有专门用的软件,和单片机相互通信也有专门的软件,串口助手软件可以帮助你和单片机通信,可以在串口助手软件中写一个字符串发送给单片机,同时也可以在串口助手软件中接受单片机发送过来的数据。串口助手软件是验证单片机串口是否工作的一个重要软件。
下载程序到单片机的软件:这个软件专门负责把hex文件下载到单片机里面去。

2安装IAR

这个看word

3使用IAR编写程序 生成hex文件

步骤1:在桌面上新建一个文件夹,这个文件夹不要有中文或特殊符号,最好是全英文
在这里插入图片描述
步骤2:打开IAR
在这里插入图片描述
步骤3 新建工作空间
在这里插入图片描述
步骤4 新建工程
在这里插入图片描述
在这里插入图片描述
保存到桌面上新建的那个文件夹,为工程取个英文名字就好
在这里插入图片描述
最终效果:
在这里插入图片描述
步骤5 在main.c里写C代码,复制下面的代码:

/* --COPYRIGHT--,BSD_EX

 * Copyright (c) 2012, Texas Instruments Incorporated

 * All rights reserved.

 *

 * Redistribution and use in source and binary forms, with or without

 * modification, are permitted provided that the following conditions

 * are met:

 *

 * *  Redistributions of source code must retain the above copyright

 *    notice, this list of conditions and the following disclaimer.

 *

 * *  Redistributions in binary form must reproduce the above copyright

 *    notice, this list of conditions and the following disclaimer in the

 *    documentation and/or other materials provided with the distribution.

 *

 * *  Neither the name of Texas Instruments Incorporated nor the names of

 *    its contributors may be used to endorse or promote products derived

 *    from this software without specific prior written permission.

 *

 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,

 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR

 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR

 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,

 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 *

 *******************************************************************************

 * 

 *                       MSP430 CODE EXAMPLE DISCLAIMER

 *

 * MSP430 code examples are self-contained low-level programs that typically

 * demonstrate a single peripheral function or device feature in a highly

 * concise manner. For this the code may rely on the device's power-on default

 * register values and settings such as the clock configuration and care must

 * be taken when combining code from several examples to avoid potential side

 * effects. Also see www.ti.com/grace for a GUI- and www.ti.com/msp430ware

 * for an API functional library-approach to peripheral configuration.

 *

 * --/COPYRIGHT--*/

//******************************************************************************

//  MSP-FET430P140 Demo - USART0, UART 115200 Echo ISR, XT2 HF XTAL ACLK

//

//  Description: Echo a received character, RX ISR used. Normal mode is LPM0,

//  USART0 RX interrupt triggers TX Echo. Though not required, MCLK= XT2.

//  ACLK = n/a, MCLK = SMCLK = UCLK0 = XT2 = 8MHz

//  Baud rate divider with 8Mhz XTAL = 8000000/115200 = 0069 (0045h)

//  //* An external 8MHz XTAL on X2IN X2OUT is required for XT2CLK *//

//  //* Min Vcc required varies with MCLK frequency - refer to datasheet *//

//

//

//                MSP430F149

//             -----------------

//         /||            XT2IN|-

//          | |                 | 8Mhz

//          --|RST        XT2OUT|-

//            |                 |

//            |             P3.4|------------>

//            |                 | 115200 - 8N1

//            |             P3.5|<------------

//

//

//  M. Buccini

//  Texas Instruments Inc.

//  Feb 2005

//  Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.21A

//******************************************************************************


#include


int main(void)

{

  volatile unsigned int i;

  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

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


  BCSCTL1 &= ~XT2OFF;                       // XT2on


  do

  {

  IFG1 &= ~OFIFG;                           // Clear OSCFault flag

  for (i = 0xFF; i > 0; i--);               // Time for flag to set

  }

  while ((IFG1 & OFIFG));                   // OSCFault flag still set?


  BCSCTL2 |= SELM_2 + SELS;                 // MCLK = SMCLK = XT2 (safe)

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

  UCTL0 |= CHAR;                            // 8-bit character

  UTCTL0 |= SSEL1;                          // UCLK = SMCLK

  UBR00 = 0x45;                             // 8MHz 115200

  UBR10 = 0x00;                             // 8MHz 115200

  UMCTL0 = 0x00;                            // 8MHz 115200 modulation

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

  IE1 |= URXIE0;                            // Enable USART0 RX interrupt


  __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0 w/ interrupt

}


#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)

#pragma vector=USART0RX_VECTOR

__interrupt void usart0_rx (void)

#elif defined(__GNUC__)

void __attribute__ ((interrupt(USART0RX_VECTOR))) usart0_rx (void)

#else

#error Compiler not supported!

#endif

{

  while (!(IFG1 & UTXIFG0));                // USART0 TX buffer ready?

  TXBUF0 = RXBUF0;                          // RXBUF0 to TXBUF0

}

完成后效果:
在这里插入图片描述

步骤6 设置IAR使其能够编译输出hex文件
改成release模式
在这里插入图片描述
效果:
在这里插入图片描述
然后右键点工程名字,出现这个界面,左键点option
在这里插入图片描述
然后再linker里选output,勾选覆盖默认,修改文件后缀为hex,设置输出格式为intel-extended,最后确定。
在这里插入图片描述

步骤6 点击编译,第一次编译会让保存工作空间名字,随便取个名字保存即可。
在这里插入图片描述
在这里插入图片描述
编译完成后最底下有提示:
在这里插入图片描述
再次点击编译就不会让保存工作空间了。
编译的目的是把写的C代码编译成hex文件,
这个文件在哪里我们要知道:
打开桌面上的工程文件,然后进入release文件夹
在这里插入图片描述
然后进exe文件夹
在这里插入图片描述
这个文件就是hex文件:
在这里插入图片描述

4 安装CH340驱动

在这里插入图片描述
在这里插入图片描述
出现安装失败的原因可能是电脑已经存在CH340驱动了,那就不用再管这个了。
安装驱动后,把单片机连接到电脑
然后把右键点击此电脑,然后点属性
在这里插入图片描述
然后点设备管理器
在这里插入图片描述
然后可以看到插入的430单片机的端口号,我这里就是COM24。端口号是计算机识别外部设备的代号,每次插入设备这个端口号可能会随机分配,所以每次插入后的端口号可能会不一样,下载程序或者串口通信都需要在软件里面设置端口号,这个端口号的查看方式我们得记住,同时也记住插入单片机后计算机给单片机分配的端口号是多少。
在这里插入图片描述

5下载程序到单片机

打开这个软件在这里插入图片描述
点这个去打开工程里生成的hex文件
在这里插入图片描述
打开后的效果:
在这里插入图片描述
点setup去设置端口号
在这里插入图片描述
我这里得将COM5那个位置设置为COM24,设置好后点击OK
在这里插入图片描述
然后设置单片机型号,最后点AUTO,点了之后程序就会下载到单片机里,注意看软件下方的提示,下载没错的话会提示编程成功。
在这里插入图片描述

6做串口实验

首先得看硬件,P34和P35引脚就是串口引脚。确保用一个USB转TTL模块,链接到这里,然后插入电脑。
在这里插入图片描述
我们之前下载的程序的功能是说,单片机串口收到什么信息,就会用串口回发一个相同的信息。
打开串口调试助手,选择端口号,选择波特率,然后打开串口,然后写一个字符串,最后点发送,单片机收到后,会回发一个同样的字符串,这就说明了串口通信成功。
在这里插入图片描述

推荐阅读

史海拾趣

Electronic Concepts Inc公司的发展小趣事

进入21世纪后,ECI开始将目光投向国际市场。在海外市场部经理赵先生的努力下,ECI成功打入欧洲和北美市场。面对不同的文化背景和市场需求,ECI积极调整策略,提供符合当地需求的产品和服务。通过不懈努力,ECI在国际市场上的份额逐年增长,为公司的发展注入了新的动力。

EKIT公司的发展小趣事

2023年11月,华为坤灵(HUAWEI eKit)在泰国曼谷成功举办了分销品牌发布会。此次发布会标志着HUAWEI eKit正式进入泰国市场,并与VST ECS(泰国)和Synnex(泰国)等金牌分销合作伙伴携手,共同为中小企业提供数字化转型的解决方案。通过发布数通园区网络、MiniFTTO、智能协作IdeaHub等新产品,HUAWEI eKit迅速在泰国市场树立了良好的口碑,助力当地中小企业实现了数字化升级。

泽耀科技(Ashining)公司的发展小趣事

随着企业规模的扩大和影响力的提升,泽耀科技(Ashining)开始积极承担社会责任,推动可持续发展。公司注重环保和节能技术的应用,致力于生产环保型电子产品,减少生产过程中的能源消耗和环境污染。同时,泽耀科技还积极参与社会公益事业,为社会的发展贡献自己的力量。

这些故事展示了泽耀科技(Ashining)在电子行业中的发展历程和取得的成就,也体现了公司不断创新、追求卓越的精神。未来,泽耀科技将继续秉持这一精神,为电子行业的发展贡献更多的力量。

Fair Rite公司的发展小趣事

随着电子行业的快速发展,Fair Rite迅速捕捉到新的市场机遇。公司不断推出创新产品,以满足医疗、照明、汽车、通讯、航空、国防、智能能源和工业市场等领域的需求。Fair Rite通过技术创新和品质保证,赢得了客户的信赖和市场的认可。

DS-IMP公司的发展小趣事

DS-IMP公司非常重视人才培养和团队建设。公司建立了完善的人才培养机制,为员工提供丰富的培训和学习机会。同时,公司还注重团队建设和文化建设,通过组织各种团队活动和文化建设活动,增强员工的凝聚力和归属感。这些努力使得公司拥有一支高素质、专业化的团队,为公司的发展提供了坚实的人才保障。

CW Industries公司的发展小趣事

CW Industries公司的前身Wirt Company由爱迪生的助手查尔斯·沃尔特于1904年创立。在公司初创时期,沃特率先发展了线绕电位器、固定线绕电阻器、汽车火花抑制器和滑动开关等产品。这些创新为公司的初步发展奠定了坚实的基础。随着电子行业的快速发展,CW Industries逐渐在多个电子领域开发出专利产品和工艺,如滑动、摇臂和按钮开关,以及绝缘穿刺连接器等。公司凭借其独特的设计和专利功能,逐渐在市场上占据了一席之地。

问答坊 | AI 解惑

数字式温湿度传感器SHT**C程序

这是一款数字信号输出的温湿度传感器,很好用。…

查看全部问答>

Luminary系列所有型号的选型工具

Luminary的函数库和图形库,上面集成的东西很丰富,很多工程师都会喜欢。 可以按着对外设的需求,来选。想要USB,就点“USB” ;想要CAN,就点“CAN” ,最后要求都满足了,就是你想要的型号 …

查看全部问答>

关于XILINX软核问题?

碰到这样的一个问题,执行下面这一段 C语言程序时(单步执行),执行到第四行时,它并没有接着执行第五行,而是接着返回第三行执行,再接着执行第四行,接下来是第五行了。这是什么原因?恳请知道的大侠告知下。(1)XGpio_Initialize(&LEDs_8Bit, ...…

查看全部问答>

flash ECC 读写问题

看了FLASH资料,知道FLASH的读写是以页为单位的.比如K9F1208一页是528BYTE(512+16)(main area+spare area);现在我read page怎么控制读前面512B,然后再去读16BYTE的ECC?请清楚的大虾指导.…

查看全部问答>

关于从nandflash启动的前4K代码

我现在有个led流水灯的程序,大于 4K,S3C2440从nandflash启动时,前面有个引导码start.s,它负责硬件初始化并把之后的main函数COPY到SDRAM,资料上写2440会把前4K代码自动复制到SRAM上运行,现在有个疑问:之前这个start.s如果小于4K,那么这个4K就会 ...…

查看全部问答>

急!!PXA270+uboot+wince5.0问题

想跟大侠们请教一个PXA270+uboot+wince5.0问题,现在uboot已经调试好了,uboot通过tftp下载NK.nb0到sdram中,运行NK时没有串口信息输出。经过“点灯法”发现程序能运行完src\\kenel\\oal\\startup.s,此后跳转到kernelstart(位于WINCEROOT\\Private\ ...…

查看全部问答>

一个朋友刚毕业月薪9000

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 还在念书的朋友,建议大家更用心一些,有一个朋友,今年刚毕业入职月薪9000,他的学校很一般,这哥们的水平比很多应届生高出了一节。工作反过来找他.   我想推荐到他 ...…

查看全部问答>

日本精工将发布电子纸手表

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 人类在腕表表盘显示历史上的又一大突破即将诞生,继机械表、石英表、液晶显示之后,精工开始采用电子纸来制作表盘,电子纸产品极为节能,分辨率高达300dpi,这款腕表还能通过最近的原子钟发出 ...…

查看全部问答>

程序进不去

这是我编的一个小程序 .text _c_int0:          SETC INTM          CLRC SXM          CLRC OVM          CLRC ...…

查看全部问答>