qepuemc 发表于 2023-9-7 19:37:38

stc32G关于串口个数和定时器及端口的问题请教

在stc32g中一共有4个定时器,通常用定时器2做串口定时器。可以串口的引脚18个。定时器应该不能光给定时器用。例子中给的看到的是一个定时器给一个器口。应该不是这样的。 比如实现需要的1个串口用来和电脑通信。2个用来485通信,3个用来蓝牙通信。 这要用了三个口。在硬件上这三个是不可以共用的。如果要 这三种共存是要用到6个端口。还是用定时器2.开串口1.但是RX TX要三组。相当于同一个串口。不知道这个是怎么设置实现的。还请大老指教

zhp 发表于 2023-9-8 09:42:24

STC32G共有5个定时器,如果串口的波特率相同,可以使用定时器2昨晚波特率发生器
至于你的需求,看不太明白,还请描述更详细一些

qepuemc 发表于 2023-9-8 11:35:01

我的意思就是串口1就用定时器2做波特率发生器。用多个口。一个用于485一个用于蓝牙3.0 3.1 用于下载。这个应该是可以的。不过目前我没法测试了。USB转TTL坏了。
    P_SW1 &= 0x3f;
//P_SW1 |= 0x00;      //UART1 switch to, 0x00: P3.0 P3.1, 0x40: P3.6 P3.7, 0x80: P1.6 P1.7, 0xC0: P4.3 P4.4
       
                P_SW1 |= 0x00;   
                                P_SW1 |= 0x40;   
                                P_SW1 |= 0x80;   
                                P_SW1 |= 0xc0;   

用上面的代码就可以了应该。不过现在我没有串口工具没法验证。如果这样可以请告诉了。

乘风飞扬 发表于 2023-9-8 17:18:04

qepuemc 发表于 2023-9-8 11:35
我的意思就是串口1就用定时器2做波特率发生器。用多个口。一个用于485一个用于蓝牙3.0 3.1 用于下载。 ...

一组串口可以切换到不同的通道使用,但是切换到一个通道后,其它通道就没有串口功能了。
如果只需要发送的话可以用切换通道的方式进行分时复用。
如果还要接收的话,除非你知道对方什么时候会给你发数据,并且不会几个通道同时进行发送。
STC32G有4组串口,可以同时使用,如果你只需要3组串口的话,开启其中3个就可以。没必要拿一组串口进行分时复用。

qepuemc 发表于 2023-9-8 21:34:50

乘风飞扬 发表于 2023-9-8 17:18
一组串口可以切换到不同的通道使用,但是切换到一个通道后,其它通道就没有串口功能了。
如果只需要发送 ...

试了一下不能同时打开多个端口复用。会发不出数据。我本来以为是可以同时发同时收。这样就可以省好多事情。看来是不可以啊。。

caicai 发表于 2023-10-12 15:55:57

zhp 发表于 2023-9-8 09:42
STC32G共有5个定时器,如果串口的波特率相同,可以使用定时器2昨晚波特率发生器
至于你的需求,看不太明白 ...

请问定时器不够用了咋办

zhp 发表于 2023-10-12 18:35:26

caicai 发表于 2023-10-12 15:55
请问定时器不够用了咋办

高级PWM可当8个定时器使用
示例代码可参考STC32G的数据手册高级PWM掌击
页: [1]
查看完整版本: stc32G关于串口个数和定时器及端口的问题请教