发 帖  
张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件, 👉戳此立抢👈
[问答] 在运行时更改UART波特率时出现问题
130 UART 波特率
分享
大家好,
我cy8c24123a做一个项目,PSoC Designer 5.4,使用用户模块:串口(UART,counter8确定工作频率)。
内容:
PSoC从另一个电路接收数据(P0.4Rx)
然后,PSoC通过RS232电路(P0.5 TX)将数据发送到PC。
当接收数据,波特率为4800;当发送数据时,buad率9600
如果我不改变波特率(4800)当PSoC运行,PSoC的工作(接收或发送数据,好吧,我可以检查数据在PC机上,我使用的终端1.9b)。
如果我改变波特率时,PSoC跑,PSoC不能工作,我想。PC上没有数据!Atforum,我知道我可以在运行时改变PSoC UART的波特率。
请你检查一下我的项目好吗?你还有别的解决办法吗?请告诉我!
很多人!

以上来自于百度翻译


     以下为原文
  Hi every body,
    I'm doing a project with CY8C24123A, PSoC designer 5.4, using user modules: UART, Counter8 (determine working frequency for UART).
    Contents:
    - PSoC receive data from another circuit (P0.4 RX)
    -Then, PSoC send data to PC via RS232 circuit (P0.5 TX)
    -When receiving data, baud rate is 4800; when sending data, buad rate is 9600
    If I don't change baud rate (4800) when PSoC running, PSoC works well (receive or send data OK, I can check data on PC, I'm using Terminal 1.9b).
    If I change baud rate when PSoC running,  PSoC can't work as I want. No data on the PC! At forum, I knew that I can change UART baud rate in run time of PSoC.
    Can you check my project, please? Have you another solutions? Please tell me!
    Many thnanks!
0
2019-1-15 12:11:53   评论 分享淘帖 邀请回答
14个回答
下面是我的计划!
UARTHORE BEURATEATY250614ZIP
269.7 K

以上来自于百度翻译


     以下为原文
  Below is my project!


2019-1-15 12:18:34 评论

举报

另一种更容易测试的解决方案是
我们有一个RX8和一个TX8模块和两个计数器8具有适当的分频器。您不需要设置比较值,并且可以单独检查每个通道。但这需要更多的资源。
您是否成功地将数据发送到具有较高波特率(9600)的PC?
鲍勃

以上来自于百度翻译


     以下为原文
  A different solution which is easier to test would be
    us an RX8 and a TX8 module and two Counte8 with appropiate dividers. You do not need to set the compare-value and you can check out each channel separately. But this uses more resources.
    Did you successfully send data to PC with the higher baud rate (9600)?
     
    Bob
2019-1-15 12:24:24 评论

举报

我有一个项目,我美国速度也改变了。有一件事我做我的项目,你是不是做的是停止UART先改变你的柜台,然后重启UART。看看是否有帮助
迈克

以上来自于百度翻译


     以下为原文
  I have a project that I usa speed change on the fly as well. The one thing I do in my project that you are not doing is stop the UART before you change the counter, then restart the UART. See if that helps
     
    Mike
2019-1-15 12:41:19 评论

举报

嗨,鲍伯,MikeP
鲍勃:如果我不改变波特率,当PSoC运行时,波特率是恒定的。我可以发送数据到PC,以更高的波特率与另一个项目。我会尝试使用TX8,RX8模块!
@ MikeP:我来查一下代码。我会照你的建议去做的!
多谢。

以上来自于百度翻译


     以下为原文
   Hi Bob, MikeP
    @Bob: [size=11.199999809265137px]If I don't change baud rate when PSoC running, baud rate is constant. I can send data to PC well with higher baud rate with another project.  I'll try to use TX8, RX8 module!
    @MikeP: I'll check code. I'll do that you advise!
    Many thanks.
2019-1-15 12:55:01 评论

举报

您可以消除计数器的需要,只需使用寄存器写
对于VC3时钟分频寄存器。查看TRM的注册名,并遵循
改写,比如在你写之前停止时钟。你也可以考虑
RX中断捕捉波特更改字符,快速切换UART设置。
问候,Dana。

以上来自于百度翻译


     以下为原文
  You could possibly eliminate the need for counters, just use register writes
    for the VC3 clock divider register. Look at TRM for register name, and follow
    recomendations, like stopping clock before you do write. You might also consider
    Rx interrupt to catch baud change character, to turn around UART settings fast.
     
    Regards, Dana.
     
     
2019-1-15 13:14:28 评论

举报

注册PIC没有张贴,现在附上。
VC3除法器寄存器
103.5 K

以上来自于百度翻译


     以下为原文
  Register pic did not post, now attached.


2019-1-15 13:32:26 评论

举报

嗨,Dana,
我会照你说的做。
鲍勃:如果使用TX8和RX8,就可以了。PSOC运行良好,我想。
多谢!

以上来自于百度翻译


     以下为原文
   Hi Dana,
    I'll do soluiton that you said.
    @Bob : if using TX8 and RX8, it is OK. PSoC running well as I want.
    Many thanks!
2019-1-15 13:38:39 评论

举报

伟大的!
我有一个关于IO引脚可以使用建议:你可以看到port0引脚是唯一连接到芯片的模拟部分。所以当你拯救他们(未来的使用)和数字IO端口可以使用相同的设计为不同的目的。
鲍勃

以上来自于百度翻译


     以下为原文
  Great!
    I have a suggestion concerning the IO-pins you use: As you can see the port0 pins are the only ones connected to the analog parts of the chip. So when you save them (for future use) and take port1 pins for digital IO you may use the same design for different purposes.
     
    Bob
2019-1-15 13:47:58 评论

举报

如果你决定使用中断,考虑C中断,这是如何
实施一
HTTP://www. CyPress?COM/?ID=4和;RID=36720
http://www.planetpsoc.com/component/content/article/43-writing-a-c-isr.html
http://www.planetpsoc.com/psoc1-articles-digital/13-basics-of-psoc-gpio.html?开始=7
问候,Dana。

以上来自于百度翻译


     以下为原文
  If you decide to use interrupts, consider C interrupt, heres how to
    implement one -
     
        
              http://www.cypress.com/?id=4&rID=36720
        
              http://www.planetpsoc.com/component/content/article/43-writing-a-c-isr.html
        
              http://www.planetpsoc.com/psoc1-articles-digital/13-basics-of-psoc-gpio.html?start=7
     
    Regards, Dana.
2019-1-15 13:54:26 评论

举报

嗨,Dana,鲍伯,MikeP
非常感谢你的帮助!
使用后的RX8,TX8,PSoC跑的很好,我想(解鲍伯)。
我正在做解决方案:UART,反8(@ MikeP)。但是PSoC工作不好,PC上没有数据。
你能帮我查一下密码吗?这是正确的吗?我修改了代码,MikeP建议:“在你改变计数器停止UART UART,然后重新启动”。
“MikeP:你能把你的项目,你没有成功的我,好吗?
下面是我修改的项目(UART,AUT8)。
多谢!
UARTHORE BEURATEATY260614ZIP
277.8 K

以上来自于百度翻译


     以下为原文
  Hi Dana, Bob, MikeP
    Thank you so much for your help!
    After using RX8, TX8, PSoC run well as I want (solution of Bob).
    I'm doing solution: UART, Counter8 ( @MikeP). But PSoC can't work well, no data on the PC.
    Can you please check code for me? Is it correct? I modified code which MikeP advise :"stop the UART before you change the counter, then restart the UART".
    @MikeP: Can you send your project which you did successfully for me, please?
    Below is my project which I modified (UART, Counter8).
    Many thanks!


2019-1-15 14:03:09 评论

举报

嗨,Dana,鲍伯,MikeP
你能检查一下我上传的项目吗?
我想尝试代码“使用UART和计数器改变波特率,而PSoC运行”。
多谢!

以上来自于百度翻译


     以下为原文
   [size=11.199999809265137px]Hi Dana, Bob, MikeP
    Can you check my project which I uploaded (UART_ChangeBaudRate_260614.zip), please?
    I want try code for solution "using UART and Counter to change baud rate while PSoC running".
    Many thanks!
2019-1-15 14:17:43 评论

举报

当你确认这对PC,实现你的电脑不自动协商
新波特率?它停留在最初连接的任何地方。除非
您有一个自定义的Win应用程序。
问候,Dana。

以上来自于百度翻译


     以下为原文
  When you are verifying this against PC, you realize the PC does not auto negotiate
    to the new baud rate ? It stays at whatever the initial connection was made at. Unless
    you have a custom  win application.
     
    Regards, Dana.
2019-1-15 14:32:51 评论

举报

在第31行,您用4800 BD写入PC。在第53行,您将速率更改为9600 BD,并将数据发送到线路64上的PC。
但是无论是第一次写入PC还是第二次写入都会出错,因为PC本身并不会改变其定义的波特率。
鲍勃

以上来自于百度翻译


     以下为原文
  On line 31 you write to PC with 4800 bd. on line 53 you change the rate to 9600bd and send out data to PC on line 64.
    But either the first write to PC or the second will go amiss, since the PC does never change its defined baud-rate by itself.
     
    Bob
2019-1-15 14:45:00 评论

举报

嗨,Dana,鲍伯
谢谢你的支持!

以上来自于百度翻译


     以下为原文
  [size=11.199999809265137px]Hi Dana, Bob
    Thanks for your supports!
2019-1-15 14:52:33 评论

举报

只有小组成员才能发言,加入小组>>