中级会员
 
- 积分
- 270
- 金钱
- 270
- 注册时间
- 2026-3-22
- 在线时间
- 17 小时
|
串口通讯是一种非常经典且至今仍广泛使用的设备通信方式。它的核心思想是将数据拆分成一位一位(bit)的二进制信号,通过一根数据线按顺序进行传输。相较于一次能传多位数据的并行通信,串口虽然速度慢一些,但硬件简单、成本低,尤其适合长距离通信。
STC32G系列单片机具有2组USART-LIN/SPI,全双工同步/异步串行通信接口(USART1和USART2)支持LIN,SPI,可省电模式唤醒。每个串行口由2个数据缓冲器、一个移位寄存器、一个串行控制寄存器和一个波特率发生器等组成。每个串行口的数据缓冲器由2个互相独立的接收、发送缓冲器构成,可以同时发送和接收数据。
STC32G 系列单片机的串口1、串口2均有4种工作方式,其中两种方式的波特率是可变的,另两种是固定的,以供不同应用场合选用。用户可用软件设置不同的波特率和选择不同的工作方式。主机可通过查询或中断方式对接收/发送进行程序处理,使用十分灵活。 串口1、串口2的通讯口均可以通过功能管脚的切换功能切换到多组端口,从而可以将一个通讯口分时复用为多个通讯口。
今天这节课我们来讲如何在YXRA-SDK中开发串口通讯。
打开YXRA-SDK工具,新建STC32G项目,打开设备视图(创建或引入时会自动打开)。我们将串口1放到设备视图中,设置其波特率以及数据位数,并允许串口中断,其他串口如果有测试条件,与串口1的开发方式一致。为了能观察串口是否工作正常,我们在中断方法中将收到的数据直接发送出去。这样就开发完成了。
点击项目编译,系统弹出检测到配置冲突,因为我们设置串口1的波特率发生器为定时器2,但我们并没有将定时器2放到设备视图中。细心的开发者会发现,系统并不是因为没有定时器2而中止编译,因为通过可视化配置中没有定时器2,并不代表整个项目中没有初始化定时器2,所以允许开发者继续编译。
我们把定时器2加到设备视图中,并配置好,点击项目编译,如果配置不当,系统依然会弹出检测到配置冲突,按检测到的冲突处理一下。
本次示例是通过P3.0、P3.1通过USB转串口与电脑连接,相当于电脑与STC32G12K128已经在物理上串口连接好。接着把编译好的hex用官方工具下载到开发板上(官方实验箱单独的串口),就可以用串口助手进行通讯测试了。



|
|