8051单片机机里的A?

后使用快捷导航没有帐号?
查看: 2637|回复: 6
MSP430F1101A单片机连不上的问题。
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
使用的串口线,自制的那种,74HC14和TL062的那个电路。
测试了一下串口线的板子,在单片机接头处的RX和TX之间可以实现传输,和直接短路串口RX和TX获取的数据也一样,也偿试改变了RST和TCK的正反。
使用的厂家的软件,用串口监控软件进行跟踪,发现和SF_BSL430,MspFet两个软件一样,先发送了一个OX80,但是MSP430F1101A却没有发送出来数据,也就是没有回信儿了。不是应该发送完OX80后,就应该是进入BSL模式,然后就应该有数据发送了么?
在线时间1131 小时
威望4599 分
芯币3695 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4599, 距离下一级还需 1401 积分
五彩晶圆(中级), 积分 4599, 距离下一级还需 1401 积分
不单单是数据啦 还有一个bsl时序的,官方有bsl的app note起码要看一遍吧
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
不是这意思,我用的成品软件,就是线是自制的,在软件发送了0X80后,没有回数据,按TI的编程,应该能接收到0X90才对,但是收到的却是00,是不是哪里的逻辑电路有问题?
在线时间1131 小时
威望4599 分
芯币3695 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4599, 距离下一级还需 1401 积分
五彩晶圆(中级), 积分 4599, 距离下一级还需 1401 积分
不好表达的,时序,就是各种线有个先后的高低电平次序
比如那个S2按键,你最好是看下官方的那个bsl app note
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
就按这个电路做的,后来又把中间那个二极管给改到上面去了,但是测试下载线的时候,把RX-TX端短接后,收不到电路PC串口发送出的数据,因而直接从ATX电源取了+12V和-12V电源做为TL062D的电源,使用+5V串二极管的方式,得到3.44V到3.87V的电压,供74HC14和单片机控制板电源,这样子在短接了RX-TX端后,可正常接收PC串口发送的数据,无乱码了。
先后使用了SF-BSL430和MSPFET这两个软件做为测试使用,在连接数据线后,通过监控软件可看到软件发送出的串行数据为X80,但是单片机板没有发送回PC数据。
BSL的TCK,RST,RX,TX,这几根应该是按照SF-BSL430和MSPFET这两个软件所设定的串行码发送的,而软件并不是我个人所写的,因此可能不需要我考虑其它引脚时序问题,而且我通过设定RST,TCK的取反项,以及通过硬件电路的取反都偿试过了,由于没有示波器,因此无法检测信号波形,所以所请教高手看看是否硬件电路有哪里有问题。
我所使用的单片机板是厂家的产品板,实际是做为控制器使用的,厂家采用的软件我手头也有,但是没有下载线,根据唐工所提供的电路,制作的下载板,通过厂家的软件读不出来单片机内容,是不是单片机没有进入BSL模式的原因,如何才能确定单片机进入BSL模式了呢?
难道说在使用唐工这个下载板时,RST接口处要点动一下就断开,使单片机复位后既可进行么?
在线时间26 小时
芯币112 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 94, 距离下一级还需 106 积分
一粒金砂(中级), 积分 94, 距离下一级还需 106 积分
关注中,到底什么原因?
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
在使用利尔达的软件时,和厂家软件一样,发送0X80后能在PC端接收到00,在使用MSPFET和SF-BSL430时,则接收不到任何的数据,看着厂家人员自已调试时也没有把单片机拆下来,直接使用的板子,可是自已调就怎么也通不过,估计还是下载线的问题吧。
Powered by
逛了这许久,何不进去瞧瞧?这个单片机语言中,为什么要有SETB,IT0?,又为什么要有MOV,IE,#,,MOV,A,#7FH,MOV,R0,#1干嘛的,
来源:网络
更新时间:
延伸:本文除了聚合《这个单片机语言中,为什么要有SETB,IT0?,又为什么要有MOV,IE,#,,MOV,A,#7FH,MOV,R0,#1干嘛的》,免费提供的有关和的内容之一,已有不少的网友认为此答案对自己有帮助!获取更多与《》相关的知识。
最满意的回答
猜你感兴趣
回答问题赢iPhone 6查看: 7624|回复: 23
有没人知道stm32里能不能位定义一个变量呢?比如
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
有没人知道stm32里能不能位定义一个变量呢?比如bit&
我记得C语言里有bool类型的变量:非0即1;
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
在线时间254 小时
通过未定义,也许可以,不过没必要了,直接用u8就可以了
我的淘宝小店:
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
我用bit是会报错的&&用&bool也不行&&为什么没必要啊?用位的话&不是节约内存些吗?
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
还有stm32里的那些兼容5v电平的管脚是有个什么标志呢?&&&突然想起&&stm32接的都是3.3v&&为啥有的管脚可以输出5v信号?难道片子里有升压电路?
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
在线时间254 小时
回复【4楼】可乐虎:
---------------------------------
不可以输出5V,是兼容5V而已.
我的淘宝小店:
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
兼容5v是指输入吗?输出兼容5v&有点说不通啊
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
初级会员, 积分 193, 距离下一级还需 7 积分
在线时间0 小时
看看我的位变量定义,根据原子的程序修改,原子莫怪
#ifndef&__SYS_H
#define&__SYS_H
#include&&stm32f10x.h&
////////////////////////////////////////////////////////////////////////////////// &
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK&STM32开发板
&&&
//正点原子@ALIENTEK
//技术论坛:
//修改日期:
//版本:V1.7
//版权所有,盗版必究。
//Copyright(C)&广州市星翼电子科技有限公司&
//All&rights&reserved
//////////////////////////////////////////////////////////////////////////////////& &
//0,不支持ucos
//1,支持ucos
#define&SYSTEM_SUPPORT_UCOS
//定义系统文件夹是否支持UCOS
&
//位带操作,实现51类似的GPIO控制功能
//具体实现思想,参考&&CM3权威指南&&第五章(87页~92页).
//IO口操作宏定义
#define&BITBAND(addr,&bitnum)&((addr&&&0xFx2000000+((addr&&0xFFFFF)&&5)+(bitnum&&2))&
#define&MEM_ADDR(addr)&&*((volatile&unsigned&long&&*)(addr))&
#define&BIT_ADDR(addr,&bitnum)&&&MEM_ADDR(BITBAND(addr,&bitnum))&
//IO口地址映射
#define&GPIOA_ODR_Addr&&&&(GPIOA_BASE+12)&//0x4001080C&
#define&GPIOB_ODR_Addr&&&&(GPIOB_BASE+12)&//0x40010C0C&
#define&GPIOC_ODR_Addr&&&&(GPIOC_BASE+12)&//0x4001100C&
#define&GPIOD_ODR_Addr&&&&(GPIOD_BASE+12)&//0x4001140C&
#define&GPIOE_ODR_Addr&&&&(GPIOE_BASE+12)&//0x4001180C&
#define&GPIOF_ODR_Addr&&&&(GPIOF_BASE+12)&//0x40011A0C&&&&
#define&GPIOG_ODR_Addr&&&&(GPIOG_BASE+12)&//0x40011E0C&&&&
#define&GPIOA_IDR_Addr&&&&(GPIOA_BASE+8)&//0x&
#define&GPIOB_IDR_Addr&&&&(GPIOB_BASE+8)&//0x40010C08&
#define&GPIOC_IDR_Addr&&&&(GPIOC_BASE+8)&//0x&
#define&GPIOD_IDR_Addr&&&&(GPIOD_BASE+8)&//0x&
#define&GPIOE_IDR_Addr&&&&(GPIOE_BASE+8)&//0x&
#define&GPIOF_IDR_Addr&&&&(GPIOF_BASE+8)&//0x40011A08&
#define&GPIOG_IDR_Addr&&&&(GPIOG_BASE+8)&//0x40011E08&
&
//IO口操作,只对单一的IO口!
//确保n的值小于16!
#define&nbspAout(n)&&&BIT_ADDR(GPIOA_ODR_Addr,n)&&//输出&
#define&nbspAin(n)&&&&BIT_ADDR(GPIOA_IDR_Addr,n)&&//输入&
#define&nbspBout(n)&&&BIT_ADDR(GPIOB_ODR_Addr,n)&&//输出&
#define&nbspBin(n)&&&&BIT_ADDR(GPIOB_IDR_Addr,n)&&//输入&
#define&nbspCout(n)&&&BIT_ADDR(GPIOC_ODR_Addr,n)&&//输出&
#define&nbspCin(n)&&&&BIT_ADDR(GPIOC_IDR_Addr,n)&&//输入&
#define&nbspDout(n)&&&BIT_ADDR(GPIOD_ODR_Addr,n)&&//输出&
#define&nbspDin(n)&&&&BIT_ADDR(GPIOD_IDR_Addr,n)&&//输入&
#define&nbspEout(n)&&&BIT_ADDR(GPIOE_ODR_Addr,n)&&//输出&
#define&nbspEin(n)&&&&BIT_ADDR(GPIOE_IDR_Addr,n)&&//输入
#define&PFout(n)&&&BIT_ADDR(GPIOF_ODR_Addr,n)&&//输出&
#define&PFin(n)&&&&BIT_ADDR(GPIOF_IDR_Addr,n)&&//输入
#define&PGout(n)&&&BIT_ADDR(GPIOG_ODR_Addr,n)&&//输出&
#define&PGin(n)&&&&BIT_ADDR(GPIOG_IDR_Addr,n)&&//输入
//当选用不同的cpu时,地址需要改变
//日期:日14:04:52
//版本号:0.1
/********************************************************************
修改说明:
1、只是把基地址改变后其他地址跟着变,不用所有的都修改
*********************************************************************/
/********************************************************************
参数说明:
*********************************************************************/
/********************************************************************
功能描述:
将SRAM区的地址为0xx个字的空间(共96位)作为位变量区
根据不同的stm32F103的芯片,可能需要改变基地址,后面的2个
*********************************************************************/
#define&SRAM_BASE_Adr&&&((uint32_t)0x)
#define&FLAG_REG0&&&&&&&(SRAM_BASE_Adr+0x0000)
#define&FLAG_REG1&&&&&&&(SRAM_BASE_Adr+0x0001)
#define&FLAG_REG2&&&&&&&(SRAM_BASE_Adr+0x0002)
#define&f0(n)&BIT_ADDR(FLAG_REG0,n)
#define&f1(n)&BIT_ADDR(FLAG_REG1,n)
#define&f2(n)&BIT_ADDR(FLAG_REG2,n)
void&NVIC_Configuration(void);
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
回复【7楼】jswd:
---------------------------------
谢谢啊&&辛苦了&&&不过&但我说的是怎么定义一个只占1位的变量?就像51里的&bit&a;&一样,这个a就只占1位。
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
在线时间17 小时
建议楼主不要用bit&&&stm32空间这么大没必要这么搞&&&&&而且移植不方便
typedef&enum&{FALSE&=&0,&TRUE&=&!FALSE}&BOOL;
#define&bool&BOOL
#define&false&FALSE
#define&true&TRUE
加上这句就可以用了
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
回复【9楼】xouou_53320:
---------------------------------
嗯&&谢了&既然移植不方便&&&那就真没必要用位定义了&呵呵&感谢
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
初级会员, 积分 197, 距离下一级还需 3 积分
在线时间0 小时
回复【10楼】可乐虎:
---------------------------------
非要用可以自己把u8的8位弄成8个位来用
这样就能节省了
不过在置位清零的时候会有点麻烦
欢迎讨论,拒绝谩骂
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
初级会员, 积分 193, 距离下一级还需 7 积分
在线时间0 小时
回复【8楼】可乐虎:
---------------------------------
我这个f0(n)~f2(n)(n为0~31)就只是占一位呀,比如说f0(0)就是1位,跟PBout(0)这种一样
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
初级会员, 积分 143, 距离下一级还需 57 积分
在线时间0 小时
回复【14楼】可乐虎:
---------------------------------
权威指南&nbsp93&&译者序里有介绍
牛逼死了,牛还活着吗?
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
主题帖子精华
在线时间17 小时
刚写的代码&给楼主测试
#ifndef&&&_BIT_&&&
#define&&&_BIT_&
#define&&&BIT(n)&&&&(1&&(n))&&&
#define&&&bit(n)&&&&BIT(n)
#define&&&bit1(n)&&&BIT(n)&
#define&&&BIT1(n)&&&BIT(n)&&&&
#define&&&BIT0(n)&&&(~(BIT(n)))
#define&&&bit0(n)&&&BIT0(n)
#define &&enBit(val,n)&&&&((val)|=(bit1(n)))
#define &&clBit(val,n)&&&&((val)&=(bit0(n)))
==================
&#include&stdio.h&
&#include&stdlib.h&
#ifndef&&&_BIT_&&&
#define&&&_BIT_&
#define&&&BIT(n)&&&&(1&&(n))&&&
#define&&&bit(n)&&&&BIT(n)
#define&&&bit1(n)&&&BIT(n)&
#define&&&BIT1(n)&&&BIT(n)&&&&
#define&&&BIT0(n)&&&(~(BIT(n)))
#define&&&bit0(n)&&&BIT0(n)
#define &&enBit(val,n)&&&&((val)|=(bit1(n)))
#define &&clBit(val,n)&&&&((val)&=(bit0(n)))
void&main()
unsigned&int&i=0
unsigned&int&a=i;
char&cha[32];
a&&=&bit0(3)&bit0(0);
itoa(a,cha,2);
printf("%032s\n",cha);
&&&&enBit(a,30);
itoa(a,cha,2);
printf("%032s\n",cha);
clBit(a,13);
itoa(a,cha,2);
printf("%032s\n",cha);
a&|=&bit(25)&|&bit(23);
itoa(a,cha,2);
& printf("%032s\n",cha);
Press any key to continue
32位以内应该没问题, 更大的没测试 ,, &
主题帖子精华
新手上路, 积分 5, 距离下一级还需 45 积分
在线时间52 小时
定义一个bit和定义一个u8占用的是一样的空间的。
原子哥是不是又要出黑科技了呀。^_^...
主题帖子精华
中级会员, 积分 248, 距离下一级还需 252 积分
在线时间1 小时
一个u8不是可以拆成8个bit来用?好像没必要,我程序中标志位什么的都是u8。
主题帖子精华
初级会员, 积分 118, 距离下一级还需 82 积分
在线时间5 小时
因为51有位变量,所以定义BIT会节约空间代码量,对没有位变量的处理器用位定义更浪费代码空间。
如果一定要用可以用C的位域定义,如:
struct&bs
 {
  unsigned&a:1;
  unsigned&b:3;
  unsigned&c:4;
 }&
 bit.a=1;
 bit.b=7;
 bit.c=15;
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
谢谢各位&&我不用位定义了&&&统一用u8
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
在线时间23 小时
位定义真的没必要,消耗的空间一样,运算量也是一样,
还有楼主说的5V兼容,并不是输出5V。是兼容输入5V不会挂。
一直努力就很好。
主题帖子精华
高级会员, 积分 781, 距离下一级还需 219 积分
在线时间0 小时
回复【22楼】qq:
---------------------------------
嗯&谢了
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205
学习嵌入式的同学不要错过啊!
主题帖子精华
中级会员, 积分 234, 距离下一级还需 266 积分
在线时间19 小时
回复【22楼】qq:
---------------------------------
多谢,学习了
Powered by&新闻中心&&&&
&&&&&&& &&&&
版权所有:北京凌阳爱普科技有限公司
未经许可网站内容严禁复制、转载,任何人不得擅自使用
友情链接:

我要回帖

更多关于 8051单片机 的文章

 

随机推荐