打印
[PIC®/AVR®/dsPIC®产品]

天梯 之 从零开始玩转PIC

[复制链接]
楼主: 程序匠人
手机看帖
扫描二维码
随时随地手机跟帖
121
hotpower| | 2008-1-19 17:54 | 只看该作者 回帖奖励 |倒序浏览

这个没试过,应该没问题,GPS就是个例子.设置完后,发送就残废~

使用特权

评论回复
122
lczsx2000| | 2008-1-19 18:35 | 只看该作者

灌水的太多,看争100楼的动作就知道了,呵呵

使用特权

评论回复
123
hotpower| | 2008-1-19 18:37 | 只看该作者

经楼上鉴定--水贴~~~

使用特权

评论回复
124
cly1005| | 2008-1-19 19:08 | 只看该作者

呵呵,俺也灌点水

使用特权

评论回复
125
程序匠人|  楼主 | 2008-1-19 20:11 | 只看该作者

继续拷问~~~~~~

 程序匠人 发表于 2008-1-19 17:40 PIC 单片机 ←返回版面    

124楼: 请教一个问题:如果串口只用到接收,没有到发送 

那么,是否可以把串行发送口当作普通IO口(输出口)来用? 
 

使用特权

评论回复
126
systemchip| | 2008-1-19 21:47 | 只看该作者

曾经试过,不行

使用特权

评论回复
127
程序匠人|  楼主 | 2008-1-20 00:15 | 只看该作者

那就是说白白浪费一个io口了?

 systemchip 发表于 2008-1-19 21:47 PIC 单片机 ←返回版面    

130楼: 曾经试过,不行 

使用特权

评论回复
128
xieyuanbin| | 2008-1-20 09:47 | 只看该作者

用IO口模拟发送就可以用了。

IO口模拟串口是最简单的,发送更简单。

使用特权

评论回复
129
程序匠人|  楼主 | 2008-1-20 11:28 | 只看该作者

不是阿,我是要做的是串口接收,不是发送

匠人是要做的是串口接收,不是发送。如果用软件模拟的话,要占用定时器和外部中断资源不说,而且实时性方面堪忧。

现在的问题就是,用了串口接收,连带着把串口发送口也浪费了。

使用特权

评论回复
130
xieyuanbin| | 2008-1-20 16:54 | 只看该作者

还有办法:用串口来模拟IO。

既然是发送端浪费,有一个比较折中的办法用它来做O口。持续发送1来模拟输出1,持续发送0来模拟输出0,不过因为有起始位和停止位,IO口需要用阻容来滤波。

使用特权

评论回复
131
程序匠人|  楼主 | 2008-1-20 17:35 | 只看该作者

串口调试成功了,心得体会——


相关连接:
参与社区讨论 
 
匠人DIY旋转时钟全程实播(连载1:电机的选择与安装)
 
匠人DIY旋转时钟全程实播(连载2:指针板的供电方式)
 匠人DIY旋转时钟全程实播(连载3:指针板原理图V01) 匠人DIY旋转时钟全程实播(连载4:一些细节考虑) 匠人DIY旋转时钟全程实播(连载5:DEMO板示意图) 匠人DIY旋转时钟全程实播(连载6:指针板状态表v01) 匠人DIY旋转时钟全程实播(连载7:旋转时钟之裸奔照) 匠人DIY旋转时钟全程实播(连载8:转速自适应算法) 匠人DIY旋转时钟全程实播(连载9:排除LED不亮故障) 匠人DIY旋转时钟全程实播(连载10:自适应算法讨论) 匠人DIY旋转时钟全程实播(连载11:表盘效果初现) 匠人DIY旋转时钟全程实播(连载12:数字表盘效果) 匠人DIY旋转时钟全程实播(连载13:动态钟摆效果) ----------------------------------------------------------------------------
 
匠人DIY旋转时钟全程实播(连载14:串口调试心得)  ----------------------------------------------------------------------------
这两天写了串口接收程序,终于调试成功了!中间遇到一些小坎坷,简单讲几句心得体会。
1、由于串口与电源正端是复用一根传导线,所以,硬件方面需要合理设计电路。要确保通讯时,单片机能够正常工作。电路如下: 
2、另外,因为三极管的导通/截止有时延,线上可能有干扰,导致通讯时序畸变,所以串行通讯的波特率不能设置得太高,匠人开始时用9600,无法正常实现接收,后来改用2400,才得以通过。
3、波特率的计算,有公式可循,为了一劳永逸。匠人用Excel做了个计算模版,以后只要填入参数,就可得到波特率赋值了。

4、串口的调试,是用电脑串口协助进行的,用了一个现成的调试软件。界面如下:

5、另外发现PIC单片机的串口模块有个令人不爽的地方。比如,匠人只用到串口接收,不用串口发送。但是串口发送口缺不能配置为普通IO口来用,实在有点浪费啊!以下是社区讨论摘选:
 程序匠人 发表于 2008-1-19 17:40 PIC 单片机 ←返回版面   

124楼: 请教一个问题:如果串口只用到接收,没有到发送

 
那么,是否可以把串行发送口当作普通IO口(输出口)来用?
 systemchip 发表于 2008-1-19 21:47 PIC 单片机 ←返回版面   

130楼: 曾经试过,不行

  
* - 本贴最后修改时间:2008-1-19 21:48:59 修改者:systemchip



 程序匠人 发表于 2008-1-20 00:15 PIC 单片机 ←返回版面   

131楼: 那就是说白白浪费一个io口了?

 
 systemchip 发表于 2008-1-19 21:47 PIC 单片机 ←返回版面    

130楼: 曾经试过,不行 
 xieyuanbin 发表于 2008-1-20 09:47 PIC 单片机 ←返回版面   

132楼: 用IO口模拟发送就可以用了。

IO口模拟串口是最简单的,发送更简单。




 程序匠人 发表于 2008-1-20 11:28 PIC 单片机 ←返回版面   

133楼: 不是阿,我是要做的是串口接收,不是发送

 
匠人是要做的是串口接收,不是发送。如果用软件模拟的话,要占用定时器和外部中断资源不说,而且实时性方面堪忧。

现在的问题就是,用了串口接收,连带着把串口发送口也浪费了。
 xieyuanbin 发表于 2008-1-20 16:54 PIC 单片机 ←返回版面   

136楼: 还有办法:用串口来模拟IO。

 
既然是发送端浪费,有一个比较折中的办法用它来做O口。持续发送1来模拟输出1,持续发送0来模拟输出0,不过因为有起始位和停止位,IO口需要用阻容来滤波。


使用特权

评论回复
132
huanan_| | 2008-1-21 15:16 | 只看该作者

对弹道弹道弹ddddd

大胆地地地弹ddddd

使用特权

评论回复
133
niu9911| | 2008-1-22 16:10 | 只看该作者

我的ICD2

我的ICD2是贝能的,使用时搞不清楚的问题一直出来,不明白就是不爽。
调试时怎么不能单步进行,读写EEPROM也查不出来结果,真是急人。只有再等!

使用特权

评论回复
134
程序匠人|  楼主 | 2008-1-23 23:59 | 只看该作者

我问天问地问高手:匠人和PICC,到底谁是弱智?


一个16进制转bcd码的程序段,居然调用了两次除法。到底是匠人弱智,还是PICC弱智呢?
哪位高手,可以优化一下这两条C语句的写法,好让PICC在编译时,不调用两次除法程序?
--------------------------------------------------------------------------------------------
973:                                   DISP_QUEUE[0] = TIMER_H / 10;        //闹钟"时"(0~23)    
  06E7    300A     MOVLW 0xa
  06E8    00F1     MOVWF 0x71
  06E9    0831     MOVF 0x31, W
  06EA    120A     BCF 0xa, 0x4
  06EB    118A     BCF 0xa, 0x3 
  06EC    27CA     CALL 0x7ca                   //(第一次调用除法)
  06ED    00C4     MOVWF 0x44
974:                                   DISP_QUEUE[1] = TIMER_H % 10; 
  06EE    300A     MOVLW 0xa
  06EF    00F1     MOVWF 0x71
  06F0    0831     MOVF 0x31, W
  06F1    120A     BCF 0xa, 0x4
  06F2    118A     BCF 0xa, 0x3
  06F3    27CA     CALL 0x7ca                   //(第二次调用除法)
  06F4    0870     MOVF 0x70, W
  06F5    00C5     MOVWF 0x45

使用特权

评论回复
135
liqiu_21ic| | 2008-1-24 15:31 | 只看该作者

maplab 8.00好象还是不怎么支持中文啊

我建立的文件是中文,结果软件读报错
  出现很多问题,如追加加文件时报错,重新打开项目,结果项目管理器自动关闭。
   把文件名改为英文名,这些问题全都没了。

使用特权

评论回复
136
ldy216| | 2008-1-30 10:03 | 只看该作者

哪个要PIC包含文件库,汇编的

   由于很多PIC没有乘除法指令,指令系统也不完全一样,甚至特殊功能寄存也不完全一样,所以每个IC必须有一个包含文件,系统原来的包含文件定义不全,我的文件定义是全的,另外我有PIC的算法库,汇编的,升级软件(安装型的,安全升级,支持断线)等,用PIC做过近100百个项目

使用特权

评论回复
137
riverxian| | 2008-2-1 11:47 | 只看该作者

我和你的情况差不多

怎么能学了不忘呢?

使用特权

评论回复
138
hotpower| | 2008-2-12 17:11 | 只看该作者

哈哈~~~用PIC24F跑UCOS2文件系统就不用愁了~~~

使用特权

评论回复
139
程序匠人|  楼主 | 2008-2-14 09:26 | 只看该作者

关于PIC的IAP功能,如何实现?

看资料上说,可以通过串口方式,修改内部FLASH程序区域,实现在线升级。问题是,如何实现程序定位?望此中高手出来亮招

使用特权

评论回复
140
yewuyi| | 2008-2-14 11:11 | 只看该作者

怎么弄上那个了?



稍微看了一点,感觉和别的MCU的IAP基本一样,都需要一个引导程序,引导程序接受例如你的UART过来的数据并根据协议判断是数据还是地址,你的‘程序定位’是否就是说的代码地址?那是需要你的BOOTLOAD来确定的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则