打印

UART1管脚重定义使用的,内部ROM还支持升级吗?

[复制链接]
3159|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jinqiu|  楼主 | 2010-8-30 13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有明确的说法吗?谢谢
沙发
香水城| | 2010-8-30 13:51 | 只看该作者
支持。

使用特权

评论回复
板凳
jinqiu|  楼主 | 2010-8-30 13:53 | 只看该作者
谢谢版主,意思就是ROM程序会尝试所有的USART1的管脚各种配置直到与PC上的更新软件通讯成功,是这样吧?

使用特权

评论回复
地板
香水城| | 2010-8-30 13:58 | 只看该作者
谢谢版主,意思就是ROM程序会尝试所有的USART1的管脚各种配置直到与PC上的更新软件通讯成功,是这样吧?
jinqiu 发表于 2010-8-30 13:53


你指的是什么型号的芯片?

使用特权

评论回复
5
jinqiu|  楼主 | 2010-8-30 14:02 | 只看该作者
具体来说STM32F103ZET6,144封装,我想把PB6和PB7重定义成UART1,这样方便我使用更多的TIMx。我担心以后不能再用内部的ROM通过重定义后的UASRT1升级程序。

使用特权

评论回复
6
香水城| | 2010-8-30 14:06 | 只看该作者
重定义成UART1是你自己程序的事情,系统存储器中的Bootloader并不做重定义,它只通过默认的USART1端口与PC通信。

不要忘记,系统复位后所有的重定义配置失效。

使用特权

评论回复
7
jinqiu|  楼主 | 2010-8-30 14:14 | 只看该作者
哦,那就是如果我不按照系统默认的USART1管脚配置来使用,我就不能使用内部ROM来升级应用。谢谢。
-----------------------
另外再请教下上电过程中I/O管脚电平状态是什么样啊?

使用特权

评论回复
8
香水城| | 2010-8-30 14:19 | 只看该作者
哦,那就是如果我不按照系统默认的USART1管脚配置来使用,我就不能使用内部ROM来升级应用。谢谢。
-----------------------
另外再请教下上电过程中I/O管脚电平状态是什么样啊? ...
jinqiu 发表于 2010-8-30 14:14


随便你USART1管脚怎么配置,这是你的事情;系统重新启动后引脚重定义就失效了!!
Bootloader与你自己的程序是相互独立的。

上电过程中I/O管脚电平状态是默认的浮空输入。

使用特权

评论回复
9
jinqiu|  楼主 | 2010-8-30 14:22 | 只看该作者
感谢版主的热心解答。我从atmel的arm7刚转过来。
“系统重新启动后引脚重定义就失效了”这块您反复提及是有什么特殊含义吗?
重定义功能应该是我的应用程序的初始化部分配置的,如果重新启动,不是又重新进行了初始化配置吗?

使用特权

评论回复
10
香水城| | 2010-8-30 14:42 | 只看该作者
感谢版主的热心解答。我从atmel的arm7刚转过来。
“系统重新启动后引脚重定义就失效了”这块您反复提及是有什么特殊含义吗?
重定义功能应该是我的应用程序的初始化部分配置的,如果重新启动,不是又重新进行了初始 ...
jinqiu 发表于 2010-8-30 14:22


不错,如果重新启动,是要重新进行初始化。但是用Bootloader升级Flash的时候,Bootloader的程序并不执行你设定的初始化过程,它执行自己的初始化过程,而这个"它自己的初始化过程"不对USART1进行重新映射。

使用特权

评论回复
11
jinqiu|  楼主 | 2010-8-30 15:16 | 只看该作者
懂了,多谢。
也就是ROM固化的Bootloader并不会尝试其管脚配置的所有的可能性:)多谢。
---------
再请您给论证下方案的可行性:
STM32F103ZET6,64K RAM,512M Flash,
晶振8M--PPL--->72M,32.768K(6pF)--->内部RTC.
USART×5,波特率9600,3全双工,2半双工
TIM1,TIM3,TIM8共12通通,分别对600HZ的输入脉冲进行测量。
FSMC外接LCD+8×8KeyPad等等,用FSMC_NE1~NE4+地址译码使用
I2C2外接RTC+EEprom.(据说硬件I2C接口有问题?芯片内置RTC精度如何?)
SPI2外接SPI Flash
跑Ucos或同类RTOS.
-------------------------------
这样的方案,那些地方有风险?那些地方需要注意?

使用特权

评论回复
12
香水城| | 2010-8-30 15:27 | 只看该作者
只要你的引脚分配没有冲突,就没有问题。

只要操作正确,硬件I2C接口很好用。

使用特权

评论回复
13
jinqiu|  楼主 | 2010-8-30 15:42 | 只看该作者
用Atmel-ARM7时候有个地方挺别扭:
串口:我们的半双工应用情况是发送的数据同时回环到接收线上。正常操作是关闭接收中断-》启动发送中断-》发送结束中断-》关闭发送中断-》打开接收中断。而ATMEL的“发送结束中断”是其发送寄存器内数据为空就会产生,其实这个时候只是将发送寄存器内的数据放到移位寄存器,并没有真正送到线上,我们需要动态根据波特率来延时一个字节时间再打开接受中断,这个挺烦。。
串口配置成ISO7816模式时,校验位只能为偶校验,这样在TS反向约定时候有问题。
这个不知道STM32是否可以规避这些问题?

使用特权

评论回复
14
香水城| | 2010-8-30 15:48 | 只看该作者
你问的什么问题:STM32的问题?ATMEL的问题?

使用特权

评论回复
15
jinqiu|  楼主 | 2010-8-30 15:48 | 只看该作者
stm32是否存在同样的问题:)

使用特权

评论回复
16
香水城| | 2010-8-30 16:21 | 只看该作者
在发送寄存器空标志之外,STM32的USART还有TC位,可以明确知道何时发送结束。

使用特权

评论回复
17
jinqiu|  楼主 | 2010-8-30 16:39 | 只看该作者
多谢,就是要这个停止位发送后才置位的TC。

使用特权

评论回复
18
xixihaha0| | 2010-8-31 09:44 | 只看该作者
香主对stm32的太熟悉了,都到寄存器的某一位,stm32的芯片资料太烂了,是我见过的最烂 的

使用特权

评论回复
19
香水城| | 2010-8-31 10:13 | 只看该作者
香主对stm32的太熟悉了,都到寄存器的某一位,stm32的芯片资料太烂了,是我见过的最烂 的
xixihaha0 发表于 2010-8-31 09:44


哈哈,如果你眼睛里只有石头,捡到美玉也会当成石头扔掉,:lol

使用特权

评论回复
20
hxcic| | 2010-8-31 11:16 | 只看该作者
继续围观

使用特权

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

本版积分规则

5

主题

21

帖子

0

粉丝