历史上的今天
今天是: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文件 步骤6 点击编译,第一次编译会让保存工作空间名字,随便取个名字保存即可。 打开这个软件 首先得看硬件,P34和P35引脚就是串口引脚。确保用一个USB转TTL模块,链接到这里,然后插入电脑。
改成release模式
效果:
然后右键点工程名字,出现这个界面,左键点option
然后再linker里选output,勾选覆盖默认,修改文件后缀为hex,设置输出格式为intel-extended,最后确定。


编译完成后最底下有提示:
再次点击编译就不会让保存工作空间了。
编译的目的是把写的C代码编译成hex文件,
这个文件在哪里我们要知道:
打开桌面上的工程文件,然后进入release文件夹
然后进exe文件夹
这个文件就是hex文件:
4 安装CH340驱动


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

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

我们之前下载的程序的功能是说,单片机串口收到什么信息,就会用串口回发一个相同的信息。
打开串口调试助手,选择端口号,选择波特率,然后打开串口,然后写一个字符串,最后点发送,单片机收到后,会回发一个同样的字符串,这就说明了串口通信成功。
史海拾趣
|
Luminary的函数库和图形库,上面集成的东西很丰富,很多工程师都会喜欢。 可以按着对外设的需求,来选。想要USB,就点“USB” ;想要CAN,就点“CAN” ,最后要求都满足了,就是你想要的型号 … 查看全部问答> |
|
碰到这样的一个问题,执行下面这一段 C语言程序时(单步执行),执行到第四行时,它并没有接着执行第五行,而是接着返回第三行执行,再接着执行第四行,接下来是第五行了。这是什么原因?恳请知道的大侠告知下。(1)XGpio_Initialize(&LEDs_8Bit, ...… 查看全部问答> |
|
看了FLASH资料,知道FLASH的读写是以页为单位的.比如K9F1208一页是528BYTE(512+16)(main area+spare area);现在我read page怎么控制读前面512B,然后再去读16BYTE的ECC?请清楚的大虾指导.… 查看全部问答> |
|
我现在有个led流水灯的程序,大于 4K,S3C2440从nandflash启动时,前面有个引导码start.s,它负责硬件初始化并把之后的main函数COPY到SDRAM,资料上写2440会把前4K代码自动复制到SRAM上运行,现在有个疑问:之前这个start.s如果小于4K,那么这个4K就会 ...… 查看全部问答> |
|
想跟大侠们请教一个PXA270+uboot+wince5.0问题,现在uboot已经调试好了,uboot通过tftp下载NK.nb0到sdram中,运行NK时没有串口信息输出。经过“点灯法”发现程序能运行完src\\kenel\\oal\\startup.s,此后跳转到kernelstart(位于WINCEROOT\\Private\ ...… 查看全部问答> |
|
本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 还在念书的朋友,建议大家更用心一些,有一个朋友,今年刚毕业入职月薪9000,他的学校很一般,这哥们的水平比很多应届生高出了一节。工作反过来找他. 我想推荐到他 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 人类在腕表表盘显示历史上的又一大突破即将诞生,继机械表、石英表、液晶显示之后,精工开始采用电子纸来制作表盘,电子纸产品极为节能,分辨率高达300dpi,这款腕表还能通过最近的原子钟发出 ...… 查看全部问答> |




