文档库 最新最全的文档下载
当前位置:文档库 › 如何通过串口烧写STM32程序

如何通过串口烧写STM32程序

如何通过串口烧写STM32程序
如何通过串口烧写STM32程序

如何通过串口烧写STM32程序

1、首先安装ST官方串口下载软件,Flash_Loader_Demonstrator_v2.2.0_Setup.exe

2、用交叉串口线连接开发板和电脑,

BOOT0选择为1,BOOT1选择为0,

接上开发板电源,SW1切换到ON打开电源开关。

3、从开始程序菜单打开Flash Loader Demo程序,所有程序->STMicroelectronics->Flash

Loader Demonstrator->Flash Loader Demo,出现如下界面:

4、选择默认设置即可,一直点next,出现如下界面:

5、选择Erase/ALL,擦除用户FLASH,然后点Next,出现如下界面即擦除完成:

文件,如E:\stm32\baiweistm32\led\led.hex,点Next开始下载

7、出现下面的界面即表示下载完成:

8、点Close关闭程序,关闭开发板电源,BOOT0选择为0,重新打开开发板电源,即可运

行刚才下载到开发板的程序。

注意:若要再次下载程序,请先关掉开发板电源,关闭Flash Loader Demo程序,然后再重

复2~8的步骤。

2812串口烧写Flash方法

第一步:安装CCS3.1或更高版本下面以3.3为例 第二步:安装串口编程算法项目文件插件:sdf28xx_v3_3_serial(不同CCS对应不同版本插件,此插件与CCS3.3对应),安装在CCS根目录下 第三步:安装SdFlashV1.60或更高版本,安装在CCS根目录下 第四步:编辑sdopts.cfg文件,此文件存放在你所安装的windows的System32目录下 (1)用记事本的方式打开sdopts.cfg (2)在"# End of sdopts.cfg”前加入如下文本: [EmulatorId=C1] EmuPortAddr=0xC1 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH [EmulatorId=C2] EmuPortAddr=0xC2 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH [EmulatorId=C3] EmuPortAddr=0xC3 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH [EmulatorId=C4] EmuPortAddr=0xC4 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH 第五步:打开SDFlash,路径为…\CCStudio_v3.3\specdig\sdflash\bin下(在打开CCS的前提下,还需打开要加载的工程,SDFlash.exe才能打开) 第六步:打开F2812SerialFlash.sdp工程 路径为…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812 打开Project-setting菜单,分别对target、erase、Programming、Verify进行设置Target:…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F281xRS232Flash.dll 若使用PC的COM1则选择仿真器为C1,COM2则选择C2 Erase:…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F2812SerialFlash.out Programming: (1)…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F2812SerialFlash.out (2)flash data 载入要烧写的文件工程最好放在…\CCStudio_v3.3\MyProjects下,避免不必要的麻烦 Verify:…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F2812SerialFlash.out 其余不用改动,按默认值就可以。

c语言串口通信范例

一个c语言的串口通信程序范例 分类:技术笔记 标签: c语言 串口通信 通信程序 it 最近接触一个项目,用HL-C1C激光位移传感器+易控组态软件完成生产线高度跳变检测,好久没有接触c c#,一些资料,找来做个记录,也许大家用的着 #include #include #include #include #define COM232 0x2f8 #define COMINT 0x0b #define MaxBufLen 500 #define Port8259 0x20 #define EofInt 0x20 static int comportaddr; static char intvectnum; static unsigned char maskb; static unsigned char Buffer[MaxBufLen]; static int CharsInBuf,CircIn,CircOut; static void (interrupt far *OldAsyncInt)();

static void interrupt far AsyncInt(void); void Init_COM(int ComPortAddr, unsigned char IntVectNum, int Baud, unsigned char Data, unsigned char Stop, unsigned char Parity) { unsigned char High,Low; int f; comportaddr=ComPortAddr; intvectnum=IntVectNum; CharsInBuf=0;CircIn=0;CircOut=0; f=(Baud/100); f=1152/f; High=f/256; Low=f-High*256; outp(ComPortAddr+3,0x80); outp(ComPortAddr,Low); outp(ComPortAddr+1,High); Data=(Data-5)|((Stop-1)*4); if(Parity==2) Data=Data|0x18; else if(Parity==1) Data=Data|0x8; outp(ComPortAddr+3,Data); outp(ComPortAddr+4,0x0a);

程序烧录工艺

程序烧录工艺 一、目的:规范模块烧录操作程序,使烧录过程标准化。 二、烧录设备: 硬件 计算机一台 烧录驱动板一块 计算机与烧录驱动板连线一根 烧录线一根 软件 USB转串口驱动软件(已安装)一套 烧录程序(已安装)一套 模块程序 三、烧录过程 1.连接方法如图1所示 图1 2.打开计算机,使计算机处于正常工作状态,用鼠标双击桌面DIR K150 烧录程序图标,运行烧录程序; 3.进入图2界面

图2 在红圈内显示具体COM口序号时,连接正常,如果红圈内显示COMX并弹出图3窗口时,应检查连线是否正常牢固连接,USB转串口驱动软件有没有运行,检查完毕,点击“文件”→“选择串口”→“输入串口编号”→“x”→点击“ok”,如图4,当界面返回到图2状态,红圈内出现串口数值时,进入下一道工序。 图3

图4 4.载入模块程序,操作方法如图5所示。点击“载入”→“查找范围”→“模块程序”→“打开”,进入图6界面。 图5

图6 5.模式设置:点击“设置”→在下拉窗口中选择“ICSP模式(I)”,界 面如图7所示。 图7 6.配置位设置:点击图8红圈“配置位”→弹出图9窗口,将掉电监测选 择为“开”如图10→点击“ok”,返回图7界面。

图8 7.将烧录线与模块相连,正确方法如图1所示,点击“”→ 选择弹出窗口图11中的“擦除”→并点击“ok”→点击弹出窗口图 12中的“”→点击弹出窗口图13中的“ok”返回图7界面。 图9 图10

图11 图12 图13 8.点击“”→选择弹出窗口图13中的“”→点击 新弹出窗口图14中的“”→进入图15中的界面,等待10秒左右,当弹出图16界面时,点击“”返回图7界面。 9.该模块板程序烧录完成,去除模块板连线,放入合格品箱内,烧录不成 功的,做好不合格标记,放在不合格处,维修后,重新烧录。 敏旺科技品质保证部 2014-4-21

c语言串口通信范例

c语言串口通信范例 This manuscript was revised by the office on December 22, 2012

一个c语言的串口通信程序范例 标签:分类: 最近接触一个项目,用HL-C1C激光位移传感器+易控组态软件完成生产线高度跳变检测,好久没有接触c c#,一些资料,找来做个记录,也许大家用的着 #include <> #include <> #include <> #include <> #define COM232 0x2f8 #define COMINT 0x0b #define MaxBufLen 500 #define Port8259 0x20 #define EofInt 0x20

static int comportaddr; static char intvectnum; static unsigned char maskb; static unsigned char Buffer[MaxBufLen]; static int CharsInBuf,CircIn,CircOut; static void (interrupt far *OldAsyncInt)(); static void interrupt far AsyncInt(void); void Init_COM(int ComPortAddr, unsigned char IntVectNum, int Baud, unsigned char Data, unsigned char Stop, unsigned char Parity) { unsigned char High,Low; int f; comportaddr=ComPortAddr; intvectnum=IntVectNum; CharsInBuf=0;CircIn=0;CircOut=0; f=(Baud/100);

F28335 C2Prog串口烧写

C2Prog串口烧写TMS320F28335 Flash实验 一、实验准备 1、必备硬件:F28335开发板(可切换到SCI-A Boot模式)、与PC机相连 的串口、PC机 2、必备软件:C2Prog V1.4或V1.5、chromeinstall-6u31.exe、hex2000、 CCS3.3或CCS4.X 3、建议实验前先对硬件进行测试:通过仿真器烧写SCIA的串口程序,通 过串口助手确认开发板串口通信正常。 二、实验步骤 1、使用CCS3.3或CCS4编译程序(注意CMD文件应为烧写flash),生成.out 文件。 2、把HEX2000.exe和要转化的.out 文件放在同一个文件夹内。 3、在WIN7系统中,以资源管理器的方式打开该文件夹,在该文件夹的空 白处按住shift键右击,然后选择“在此处打开命令窗口(W)”弹出命 令窗口: 4、hex2000 -romwidth 16 -memwidth 16 -i -o xx.hex xx.out 中修改xx.hex xx.out和.out、目标.hex文件名称相同,复制粘贴到命 令窗口已有语句的后面,按回车键,生成.hex目标文件。

5、若您使用的是CCS4的编译环境,可以更加快捷的生成.hex文件。 右击工程文件,打开build properties对话框,在Build Steps中Apply Predefined Step 中选择Create flash image:Intel-HEX(如下图所示),单击OK,在以后的编译该工程中,会自动生成更新.hex文件。 6、参考下图,将开发板跳线切换至SCI-A Boot 模式,连接PC机串口和开 发板串口,给开发板上电,如已经上电要按一下复位按钮,使DSP进入SCI-A boot模式:

AT89C51串口烧写程序说明

一A T89C51ED2程序烧写软件使用说明: 1、安装JRE_Flip_Installer_3_3_4.exe文件(下载链接: https://www.wendangku.net/doc/558192918.html,/dyn/products/tools_card.asp?tool_id=3886); 下载下图中所示文件(点击前面光盘符号即可下载): 2、将下载线的串口插入电脑串口,USB口连接至电脑的USB口,另一插头插 入键盘CN1,另外两个接线RST和PSEN对应接入单元片机的4号脚和26号脚; 3、打开Flip 3.3.4.exe文件,配置参数,点Device—Select,选AT89C51ED2; 4、点Settings—Preferences,按下图设置: 5、点面板上第二排USB形图标,再选择RS232,选择正确的COM口,若只有 一个则为COM1,波特率(Raudrate)不用修改,均可,点Connect,正常情况下此时此对话框消失,主界面点亮,若显示time out,则连接失败,请检查连线,或者更换电脑再试。 6、将主界面右侧Hardware Byte一行X2前方框选中;中间FLASH Buffer Information保证选择的是flash区,而不是EEPROM。 7、点击主界面第二排倒数第三个图标,载入hex文件,或者点File—Load Hex Files,也可载入hex文件。 8、左侧Operations Flow 下面四项前方框均选中,点Run,擦除和烧写、较验需 要一定的时间,完成后四项内容前指示灯为绿色,且在下方显示Verify Pass。 9、完成后点面板上第二排USB形图标,再选择RS232,再弹出的对话框中点 disconnect,断开连接。

DSP28015串口烧写步骤与所需文件

DSP28015 串口烧写步骤 一.串口烧写步骤 1.安装CCS3.3软件 2.安装串口编程算法项目文件:sdf28xx_v3_0_serial 详情请阅读文档:SDFlash_Serial_RefGuide_v3_1.pdf文件。 3.在算法项目文件中设置好相应的时钟频率,生成.out文件 1)在CCS中导入F28015SerialFlash工程文件 文件地址: C:\CCStudio_v3.3\specdig\sdflash3.1\mydrivers\DSP280x_v3_1\DSP280x_serial\build\F28x xSerialFlash 2)设置好你的目标板相应的时钟频率 在Flash280x_API_Config.h中选择相应的PLL时钟: #define CPU_RATE 10.000L // for a 100MHz CPU clock speed (SYSCLKOUT) 【一般选择默认值就可以了】 3)保存并编译项目文件,生成F28015SerialFlash.out文件,文件存放在: C:\CCStudio_v3.3\specdig\sdflash3.1\mydrivers\DSP280x_v3_1\DSP280x_serial\bin 4.安装SdFlashV1.60或更高版本 5.编辑sdopts.cfg文件,此文件在你所安装的windows的system32目录下 1)用记事本的方式打开sdopts.cfg。 2)在“#End of sdopts.cfg”前加入如下文本: [EmulatorId=C1] EmuPortAddr=0xC1 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH [EmulatorId=C2] EmuPortAddr=0xC2 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH [EmulatorId=C3] EmuPortAddr=0xC3 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH [EmulatorId=C4] EmuPortAddr=0xC4 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH

用C编写的RS232串口通信程序

void main() { delayms(100); init(); //初始化系统 delayms(100); init_wdt(); //初始化看门狗 while(1) { while(!RI_0) //是否收到数据 { clr_wdt(); } RI_0=0; //清除接收中断标志 buffer=S0BUF; if(buffer==0x5a) //检测祯头0 start0=1; if(buffer==0x54) //检测祯头1 start1=1; if(buffer==0x5a) //检测祯尾0 end0=1; if(buffer==0xfe) //检测祯尾1 end1=1; if((start0==1)&(start1==1)) { buff[i]=buffer; //从祯头1开始存储数据 i++; } if((end0==1)&(end1==1)) //是否已经接收祯尾 { count=i; //数据长度为count个 i=1; if((buff[2]==0x03)&(count==107)) //是否422指令 { buff[0]=0x5a; //重填祯头0 buff[count-4]=0; //校验和清零 for(k=2;k<(count-4);k++) //计算校验和 { buff[count-4]+=buff[k]; } for(k=0;k

S0BUF=buff[k]; while(!TI_0); //等待发送完成 TI_0=0; //清除发送中断标志 } reset(); } else if((buff[2]==0x05)&(count==7)) //是否AD测试指令 { sendad(); reset(); } else if((buff[2]==0x18)&(count==7)) //是否发送时序信号指令 { sendpaulse(); reset(); } else //如果接收错误,则恢复各标志位为初始状态以便下次接收 { reset(); } } } } void reset() { start0=0; //祯头祯尾标志位清零 start1=0; end0=0; end1=0; for(k=0;k

bootloader和串口烧写

条件: STM8用串口烧码是利用了BootLoader的功能,所以要想用串口烧码就必须让STM8运行BootLoader 问题: 目前网上的贴有不完美的地方,一个新片,ROP(就是读保护)是使能的, 而BootLoader是关闭的。由于新片用户有一次机会用串口烧一次码,于是网上流传一段程序,让用户第一次烧这个码,将BootLoader使能,然后声称今后就可以一直用串口烧了。但仔细看手册就会知道,STM8今后(不是新片第一次)运行BootLoader的必要条件是一定要把ROP关掉,否则无论你使能BootLoader没有,STM8均不会去运行BootLoader。 修改ROP的方法: 要想关掉ROP,必须将ROP写成0xAA,而写ROP必须用SWIM口写,用串口是修改不了ROP的。用SWIN口就逃不开买ST-Link或其他遵守SWIM 协议的编程器。于是问题变成要想用串口烧码就必须用一次ST-Link,请问有了ST-Link何必再用串口烧码?用户希望用串口开发就是希望不买ST-Link吧? 学习: 我将BootLoadr运行机制翻译如下(见手册UM0560的Figure 1): STM8上电后先查8000H的内容如果8000H的内容是82H或ACH,表示已有程序也就是烧过码了,这时如果BootLoader没使能,程序就跳到8000H,开始运行你的程序,这种情况无法用串口烧码。 如果BootLoader使能了,STM8就去查看ROP,如果ROP是使能的,也跳到8000H,开始运行你的程序,这种情况还是无法用串口烧码。 如果ROP关闭,STM8才跳到BootLoader,你可在一秒钟内用串口进入烧写程序。 另外一种可能是上电查8000H的内容是空的,或者不是82H或ACH,这时UM0560的描述有点矛盾,Figure 1说还是要查ROP,然后决定运不运行BootLoader,而Table 1说是只要内容是空的,或者不是82H或ACH,STM8就会运行BootLoader(我一直怀疑ST的手册都是印度人写的,语法很怪,描述模棱两可的地方很多)。 但我觉得这两种方式,对我们用串口烧玛都没有意义,我们用串口烧码来开发,就是把前面的内容修改为新的内容,怎么可能每次都是空的呢?难道烧前先全片擦除?但全片擦除也要先进入BootLoader啊?所以空片进不进BootLoader对我们开发没有意义。 解决的方法: 实际上,网上流传的那段程序是有缺陷的,烧它无法做到真正的不买ST-Link就可用串口来开发STM8,你必须先用ST-Link将ROP关掉(写入0xAA)。实际上参考UM0560附录A的说明,在自己的软件最前面加一段跳转到BootLoader的程序就可以了。使不使能BootLoader关不关闭ROP都没所谓,只要抓住新片可用串口烧一次码的机会,将这样的码烧入就可以了。 建议: 可用一个管脚来控制,上电时STM8先查这个脚的电平,如果为低电平就跳到BootLoader,这不会浪费STM8的脚,因为这个脚只在上电时查看一次,上电后你还是可以拿他做输出(做输入不好),你的系统不可能一个输出脚都没有吧?这种方法上电快,不会造成上电延迟。实在不想拿出一个脚来做上电[判断,也可用另一个方法:记数,让程序在上电后跳到BootLoader一次或两次,因BootLoader每次会等一秒钟,所以这种方法会造成每次开机都要延迟一段时间,但不需要去将一个什么脚接地,连RESET开关都不需要,这种方法对连续烧码十分方便。 正式出产品时,可将这段码放在最前面,但会不会造成容易被破_解,就需要大家讨论了。UM0560的建议是希望加个密码什么的验证一下,防止有心人任意进入BootLoader,在你的码里加个木马,读出你的内容.

用C语言编写串口程序

用C语言编写串口程序 在当今,流行的编程软件种类繁多,它们编程方便、易于维护,但是在与硬 件直接打交道和编制系统软件时却束手无策,于是C语言就有了用武之地。C语言作为汇编语言与高级语言之间的一种过渡语言,兼有汇编语言的高效和高级语言 的方便。 在通讯中,为了保证行运安全可靠,标准的串行口必须具有许多握手信号和 状态信息。这是因为通讯的各个计算机CPU速度不一样(这会导致“错帧”)以 及发送机发送数据速度比接收机接收速度快(这会导致“过冲”)。为解决这个 问题,我们采用一个简单的握手信号,即发送机每次仅发送半个字节(低4位) 的数据,而另外半个字节(高4位)则用来传送信息。我们可以对信息位(高4位)进行如下简单的编码: 0H:发送的是新的半个字节数据 1H:重新发送上次传送错误的数据 2H:文件名结束 3H:文件结束 这样,每当发送机发送一个字节以后,就等待接受机发回送信号,这回送信号就 是发送机发送过来的那个字节。发送机接收到回送信号后,把它与刚发送的字节 相比较,如果相同,就发送新的半个字节,否则就重新发送。新数据与旧数据通 过信息位来区分。下面就是用C语言编写控制串行口的程序。 #include "dos.h" #include "stdlib.h" #include "stdio.h" #define PORT 0 void SendFile(char *fname); /* 发送文件*/ void Send(int s); /*发送一个字节*/ void SendFileName(char *fname); /*发送文件名*/ void ReceiveFile(); /*接收文件*/ void GetFileName(char *f); /*接收文件名*/ void InitPort(int port,unsigned char para); /*初始化端口*/ void SendPort(int port,char c); /*端口发送*/ int ReadPort(int port); /*读端口字节*/ int CheckState(int port); /*检查端口状态*/ int Receive(int port,int *G); /*接收一个字节*/ main(int argc,char *argv[]) { if(argc<2){ printf("Please input R(receive) or S(sent) parametre:"); exit(1); }

C语言串口通信助手代码

该程序全部由C写成没有C++ 更没用MFC 完全是自娱自乐给需要的人一个参考 #include "stdafx.h" #include #include "resource.h" #include "MainDlg.h" #include #include #include HANDLE hComm;//用于获取串口打开函数的返回值(句柄或错误值)OVERLAPPED m_ov; COMSTAT comstat; DWORD m_dwCommEvents;

TCHAR cRecs[200],cSends[100]; //接收字符串发送字符串 char j=0,*cCom; //接收用统计数据大小变量端口选择 BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } /*系统初始化函数*/ BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { HWND hwndCombo1=GetDlgItem(hwnd,IDC_COMBO1); ComboBox_InsertString(hwndCombo1,-1,TEXT("COM1")); ComboBox_InsertString(hwndCombo1,-1,TEXT("COM2"));

如何通过串口烧写uboot

广州致远电子股份有限公司 如何通过串口烧写 uboot 基于M3352_EV_BOARD 评估板

修订历史

目录 1. 适用范围 (1) 2. 原理概述 (2) 3. 开发环境 (3) 4. 技术实现 (4) 4.1 连接调试串口 (4) 4.2 更新uboot (4) 4.2.1 下载SPL (4) 4.2.2 下载uboot (5) 4.2.3 下载MLO (6) 5. 免责声明 (8)

1. 适用范围 本文基于M3352_EV_BOARD评估板,主要介绍如何从串口启动AM3352处理器并实现uboot的更新,其原理和方法同样适用于EPC-9100I-L、EPC-9200I-L、EPC-9600I-L 工控主板以及所有基于M3352-N128LI工控核心板拓展的硬件平台。

2. 原理概述 AM3352处理器支持存储器启动以及外设启动。上电后,处理器根据启动引脚的设置执行相应的一级引导代码(即固化在芯片内部的ROM Code)。当选择从外设启动的时候,可以通过UART接口下载二级引导代码SPL(用来初始化内存、时钟和电源等)。SPL执行完毕,处理器可继续通过UART接口下载uboot镜像文件,然后将控制权移交到uboot。此后,还需要通过uboot来接收用于NAND Flash启动的二级引导代码MLO以及uboot镜像,并将它们烧写到NAND Flash中,从而实现处理器再次上电时从NAND Flash启动。

3. 开发环境 1)硬件清单: M3352_EV_BOARD评估板。 2)软件资源: 产品光盘资料:M3352-N128LI CD V1.03; 附件: ●二级引导代码镜像文件(串口启动用):u-boot-spl.bin; ●uboot镜像文件:u-boot.img; ●二级引导代码镜像文件(NAND Flash启动用):MLO。

面就是用C语言编写控制串行口的程序修订稿

面就是用C语言编写控制串行口的程序 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

面就是用C语言编写控制串行口的程序。 #include" " #include" " #include" " #definePORT0 voidSendFile(char*fname);/*发送文件*/ voidSend(ints);/*发送一个字节*/ voidSendFileName(char*fname);/*发送文件名*/ voidReceiveFile();/*接收文件*/ voidGetFileName(char*f);/*接收文件名*/ voidInitPort(intport,unsignedcharpara);/*初始化端口*/ voidSendPort(intport,charc);/*端口发送*/ intReadPort(intport);/*读端口字节*/ intCheckState(intport);/*检查端口状态*/

intReceive(intport,int*G);/*接收一个字节*/ main(intargc,char*argv[]) { if(argc<2){ printf("PleaseinputR(receive)orS(sent)parametre:"); exit(1); } InitPort(PORT,231); if(*argv[1]==''''S'''') /*检查选择的有效性*/ SendFile(argv[2]); else?if(*argv[1]==''''R'''') ReceiveFile(); else{ printf("Error?inputagain."); exit(1); } } voidSendFile(char*fname)

PZ-ISP STC-ISP 程序烧录步骤

程序烧录步骤 1,USB , 安装驱动程序,驱动程序在“学习光盘”中,具体安装方法参 考配套“使用说明书”https://www.wendangku.net/doc/558192918.html,B COM 驱动安装完后,请检查的端口号。 当前为COM1 3.\\-FlashMagic 文件路径:学习光盘烧录工具,程序烧录时,要满足下面各参数的设置情况,选种“”选项卡,请按图设置PZ ISP PZ ISP .exe .exe 打开-烧录软件。https://www.wendangku.net/doc/558192918.html,B COM 与的口一致 2.STC 请选择系列单片机 3.500-999此处最佳设置范围 4.选择扩展名为的程序文件×××().HEX 5.点击“下载”完成烧录程序串口最好不要默认 在COM3上 注意: 如果插上某个USB 口出现“连接超时”或串口不能正常使用 时,请换一个USB 口试试 此软件目前不支持系统,用户请用官方软件烧程序VISTA VISTA STC STC-ISP 6T/12T 模式切换 对于XP 系统驱动程序日期务必是2003-7-16否则就会造成无法烧录 程序。安装光盘中的驱动程序时, 必须完全卸载同类型不同版本的驱 动程序。 安装完后,请在“设备管理器”中 确认驱动程序日期。 注意使用时,短接的实现自动下载为了保障开关的使用寿命,请使用自动 下载方式。 J0Auto ,电源

此款软件也是普中科技公司另一款自动下载软件()此款软件使用更方便、更简洁。只需要选择MCU 型号和要烧录文件,开发仪在端口中名字是推荐使用此款软件。 最大地兼容所有PL2303驱动:Prolific USB-to-Serial Comm Port 注意使用时,短接的实现自动下载为了保障开关的使用寿命,请使用自动 下载方式。 J0Auto ,电源 如果出现此提示,说您的电脑上驱动 程序不是兼容性最好的版本,从而降 低了下载速度.但不影响正常使用. 。 建议安装光盘中驱动程序安装时注意:用安装软件自带“移除”功能 来卸载掉你电脑中原来的驱动程序,否则无 法卸载干净。然后重新安装光盘中配的驱动。

串口通信linux c语言实现

/*write*/ #include #include #include #include #include #include #define MAX_SIZE 30 void set_speed(int,int); int main(int argc,char **argv) { int fd; int flag; int write_num=0; struct termios term; speed_t baud_rate_i; speed_t baud_rate_o; char buff[MAX_SIZE]="hello,beautiful day!"; fd=open(argv[1],O_RDWR|O_NONBLOCK); if(fd<0) printf("open the COM1 error!\n"); else printf("open COM1 ok!\n"); flag=tcgetattr(fd,&term); baud_rate_i=cfgetispeed(&term); baud_rate_o=cfgetospeed(&term); printf("%d,%d\n",baud_rate_i,baud_rate_o); set_speed(fd,9600); flag=tcgetattr(fd,&term); baud_rate_i=cfgetispeed(&term); baud_rate_o=cfgetospeed(&term); printf("%d,%d\n",baud_rate_i,baud_rate_o); while(1) { buff[29]='\n'; write_num=write(fd,buff,sizeof(buff));

如何使用串口烧写XMC1301芯片

如何使用串口烧写XMC1301 芯片 海绵宝宝 2015/8/17 英飞凌的XMC1301 芯片具有多种烧写HEX 文件的方式(从烧录的观点来看)。对于一片刚出厂的空白芯片来说,它是处于默认的ASC BSL 模式,也就是串口模式;但经常使用的是基于JLINK 的SWD 模式,在KEIL 开发环境中,使用SWD 模式是最为方便高效的应用模式;另外,还有一种量产模式,通过BMI 的设定,一旦进入量产模式外部将无法访问芯片,但如果在程序中通过添加修改BMI 的程序段,也可以在设定的触发条件下跳出量产模式,但此时芯片会恢复到出厂状态,处于默认的ASC BSL 模式,且FLASH 会自动清除;除此之外,还有若干模式,但一般很少使用,就存而不论了。 可以把BMI 看做是类似C 语言中的SWITCH 选择语句,当芯片设定为某种BMI 模式时,只能在当前的模式下更改为别的模式,而且在ASC BSL 模式下只能下载程序,不能运行程序,所以当我们用串口下载程序之后,还要在Memtool 软件中更改BMI 为SWD1 模式(使用P1.2 和P1.3 引脚,方便接线,还有SWD0 模式,只不过这是用的是P0.14 和P0.15 引脚)才可运行下载的程序,更重要的是,在我们更改BMI 为SWD1 模式运行程序后,如果想再次下载别的HEX 文件时,Memtool软件就不能通过串口模式连接了,除非用JLINK 在DAVE 中修改BMI,所以在这种情况下,可以添加一小段更改BMI 的代码在程序中,这样就可以在需要下载新的HEX 文件时,在开发板上电的时候触发BMI 修改,芯片就变成ASC BSL 模式了。 本篇所述的烧录过程可以适用于英飞凌 XMC1300 的系列芯片,不仅仅限于特定的XMC1301 QFN24 芯片。 为了降低用户的尝试成本,在开发板上已经设计了基于CP2102 的USB 转串口电路,既可以作为低成本烧写器使用,也可以用作单片机与电脑的通信手段。 为了使用串口烧写HEX 文件,首先需要做必要的准备工作: 1. 到infineon 官网下载免费的Memtool 软件(当前版本为V4.06.05),并正确安 装。 2. 到silabs 官网下载免费的CP2102 驱动程序,并正确安装。 3. 将开发板上J1 插针用两个短路子将插针横向短接,以使串口与单片机的UART 连接。 准备就绪之后,用USB 线连接开发板和电脑,这时会听到电脑找到USB 的提示音,并且位于开发板左下角处的LED3 绿灯会常亮,整个开发板应当如图1 所示:

C语言实现串口通信

摘要: 本文说明了异步串行通信(RS-232)的工作方式,探讨了查询和中断两种软件接口利弊,并给出两种方式的C语言源程序的I/O通道之一,以最简单方式组成的串行双工线路只需两条信号线和一条公共地线,因此串行通信既有线路简单的优点同时也有它的缺点,即通信速率无法同并行通信相比,实际上EIA RS-232C在标准条件下的最大通信速率仅为20Kb/S。 尽管如此,大多数外设都提供了串行口接口,尤其在工业现场 RS-232C的应用更为常见。IBM PC及兼容机系列都有RS-232的适配器,操作系统也提供了编程接口,系统接口分为DOS功能调用和BIOS 功能调用两种:DOS INT 21H的03h和04h号功能调用为异步串行通信的接收和发送功能;而BIOS INT 14H有4组功能调用为串行通信服务,但DOS和BIOS功能调用都需握手信号,需数根信号线连接或彼此间互相短接,最为不便的是两者均为查询方式,不提供中断功能,难以实现高效率的通信程序,为此本文采用直接访问串行口硬件端口地址的方式,用C语言编写了串行通信查询和中断两种方式的接口程序。 1.串行口工作原理 微机串行通信采用EIA RS-232C标准,为单向不平衡传输方式,信号电平标准±12V,负逻辑,即逻辑1(MARKING)表示为信号电平-12V,逻辑0(SPACING)表示为信号电平12V,最大传送距离15米,最大传送速率19.6K波特,其传送序列如图1,平时线路保持为1,传送数据开始时,先送起始位(0),然后传8(或7,6,5)个数据位(0,1),

接着可传1位奇偶校验位,最后为1~2个停止位(1),由此可见,传送一个ASCII字符(7位),加上同步信号最少需9位数据位。 @@T8S12300.GIF;图1@@ 串行通信的工作相当复杂,一般采用专用芯片来协调处理串行数据的发送接收,称为通用异步发送/接收器(UART),以节省CPU的时间,提高程序运行效率,IBM PC系列采用8250 UART来处理串行通信。在BIOS数据区中的头8个字节为4个UART的端口首地址,但DOS 只支持2个串行口:COM1(基地址0040:0000H)和COM2(基地址0040:0002H)。8250 UART共有10个可编程的单字节寄存器,占用7个端口地址,复用地址通过读/写操作和线路控制寄存器的第7位来区分。这10个寄存器的具体功能如下: COM1(COM2) 寄存器 端口地址功能DLAB状态 3F8H(2F8H) 发送寄存器(写) 0 3F8H(2F8H) 接收寄存器(读) 0 3F8H(2F8H) 波特率因子低字节1 3F9H(2F9H) 波特率因子高字节1 3F9H(2F9H) 中断允许寄存器0 3FAH(2FAH) 中断标志寄存器 3FBH(2FBH) 线路控制寄存器 3FCH(2FCH) MODEM控制寄存器 3FDH(2FDH) 线路状态寄存器

2812串口烧写Flash步骤

旺仔教你学DSP 考虑到众多买不起仿真器的劳苦大众!下面提供利用PC RS232 下载FLASH 到281x 的方法此教程, 适用与现在的所以C2000 系列,包括最小28335。 al,安装安装路径与CCS3.3 安装路 径相同; 2. 安装SDFlash 软件:SetupCCSPlatinum_v30329,安装路径与 CCS3.3 安装路径相同; 3. 编辑sdopts.cfg 文件(此目的是在SDFLASH 软件中能找到串口 端口号, 此文件存放在你所安装的windows 的System32 目录下(没 找到?(电脑的全部杀毒软件关了吗,赶紧关了再重新安装!)) 如下文本: C1 2 IAL_FLASH C2 2 IAL_FLASH C3 2 IAL_FLASH C4 2 IAL_FLASH 3. F2812为从SCI-A 的启动模 式,复位时:GPIOF4=0 ,GPIOF12=0 ,GPIOF3=1, GPIOF2=1; (本人开发板配置跳线帽旁边已经标明配置电平例如MDXA 的 右边为一0,表示跳线帽接至0)(GPIOf4 为SCI_A TXD 端子,复位完成后应恢 (要电脑的全部杀毒软件关了!!!) 1、先安装sdf28xx_v3_3_seri (1)用记事本的方式打开sdopts.cfg (2)在"# End of sdopts.cfg”前加入[EmulatorId=C1] EmuPortAddr=0x EmuPortMode=RS23EmuProductName=SER [EmulatorId=C2] EmuPortAddr=0x EmuPortMode=RS23EmuProductName=SER [EmulatorId=C3] EmuPortAddr=0x EmuPortMode=RS23EmuProductName=SER [EmulatorId=C4] EmuPortAddr=0x EmuPortMode=RS23EmuProductName=SER 利用串口线连接DSP 与PC 机;配置

模拟串口的C语言源程序代码

模拟串口的C语言源程序代码 本程序是模拟串口硬件机制写的,使用时可设一定时中断,时间间隔为 1/4 波特率,每中断一次调用一次接收函数,每中断4 次调用一次发送函数,不 过.对单片机来说时钟并须要快.要知道9600 的波特率的每个BIT 的时间间隔是 104us.而单片机中断一次压栈出栈一次的时间是20us 左右(标准的51 核12M 晶体)这样处理时间就要考虑清楚了.呵呵.以下程序是放在定时器中断程序函数内 的 //接收部分sbit JieShou_D= ;//定义接收端口uint8 DingShiJiShu,JieShou_h;//定时计数,接收缓冲器uint16 JieShou_T;//接收临时寄存器bit KaiShi,JieShou_b;// 开始接收标准,接收完成标志 void JieShou(void) //接收函数,每4 次调用接收一位{ if((KaiShi==0) (JieShou_D==0)) //串行开始位到来{ DingShiJiShu=0; //开始定时计数KaiShi=1; JieShou_T=0xffff; //接收临时寄存器置全1 } else if((KaiShi==1) (DingShiJiShu==1)) //第2 次调用,串行数据采样时间到来{ JieShou_T = 1; if(JieShou_D) JieShou_T |=0x8000; } else if(JieShou_T 0x807f ==0x803f) //接收完成JieShou_T=1xxx_xxxx_x011_1111 { KaiShi=0; DingShiJiShu=0; JieShou_h = JieShou_T 7; //右移7 位得到串行数据JieShou_b=1; } if(KaiShi) { DingShiJiShu++; //只在开始接收时定时计数+1 DingShiJiShu =0x03; //每4 次调用接收一位} } //发送部分sbit FaSong_D= ;//定义发送端口uint16 FaSong_h; //发送缓冲区bit FaSong_b; //发送完成标志 void KaiShiFaSong(uint8 fs) //设置发送数据,开始发送{ FaSong_h = fs; FaSong_h = 1; FaSong_h |= 0x0200; //FaSong_h=0000_001x_xxxx_xxx_0

相关文档