ldc521 发表于 2024-6-24 16:47:16

定时器01234与串口1234同时使用的问题 | T0还在,还有 RTC定时器

同时使用4路串口,且想留2个普通的定时器来使用,目前问题如下:
1.串口1使用定时器1生成固定波特率19200

2.串口2使用定时器2生成固定波特率115200
3.串口3使用定时器3生成固定波特率19200
4.串口4使用定时器4生成固定波特率9600

我想生成4个独立波特率的串口,同时能有2个普通的定时器,应该如何配置

神农鼎 发表于 2024-6-25 08:04:16

你2个相同的波特率,应该用串口2,T2

==T2可以共享

即使你 4个波特率不同,用掉了 T1/T2/T3/T4

还有 T0 + RTC/外挂-32768晶振 = 2个预留的定时器


另外 PWM定时器,不是你以为你用完了,就真是将PWM发挥出来
===你说 PWM 用了,PWM的一个基本应用,当8个普通定时器使用
       这程序,今年才给出来的,以前是给的当2个定时器




STC8051U, 还有个 T11, 再加 T0, + RTC, 够了

神农鼎 发表于 2024-6-25 08:05:07

另外你标题是错的,T0被你误导了,与串口1/2/3/4无关

讨论下 你 PWM 如何用的
选型,建议 STC32G8K64起步

ldc521 发表于 2024-6-24 16:48:38

补充,PWM已经用于PWM输出了

_奶咖君_ 发表于 2024-6-24 17:35:59

要么用软件定时器,用一路硬件定时器 分出多路软件定时器,,

要么用pwm中没有用到的通道配置成定时器使用,,

要么串口2的接的设备和串口3 换换 ? 让串口1也用定时器2做波特率发生器,波特率一样的串口可以共用定时器做

_奶咖君_ 发表于 2024-6-24 17:37:33

改成
1.串口1使用定时器2生成固定波特率19200
2.串口2使用定时器2生成固定波特率19200
3.串口3使用定时器3生成固定波特率115200
4.串口4使用定时器4生成固定波特率9600

这样省一个定时器1在加上定时器0两个硬件的定时器

_奶咖君_ 发表于 2024-6-24 17:39:47

不过我觉得还是用软件定时器的方式比较方便把,,硬件上啥都不用改,,

ldc521 发表于 2024-6-24 17:55:47

_奶咖君_ 发表于 2024-6-24 17:39
不过我觉得还是用软件定时器的方式比较方便把,,硬件上啥都不用改,,

只能用软定时器了,但是之前定时器里写的东西有点多了,,,,还有个无源的蜂鸣器要2.4K的频率模拟PWM驱动,有点难搞了
我的想法是串口的波特率独立,因为可能有4个不同的波特率

_奶咖君_ 发表于 2024-6-25 10:16:08

ldc521 发表于 2024-6-24 17:55
只能用软定时器了,但是之前定时器里写的东西有点多了,,,,还有个无源的蜂鸣器要2.4K的频率模拟PWM驱 ...

蜂鸣器这个直接pwm驱动就得了,,pwm都用完了?用的什么单片机啊

晓飛飛 发表于 2024-6-25 10:52:46

我的方案:

[*]串口1可以使用T1产生115200bps波特率
[*]串口2和串口3都使用Timer2做19200bps波特率
[*]串口4使用Timer4做9600bps波特率
这样,Timer0, Timer3,RTC 就都空出来了

页: [1] 2
查看完整版本: 定时器01234与串口1234同时使用的问题 | T0还在,还有 RTC定时器