标题:
stm32f103c8t6多串口例程源程序
[打印本页]
作者:
wyqf
时间:
2021-2-14 19:49
标题:
stm32f103c8t6多串口例程源程序
在正点原子的串口例程上修改的配置了c8t6的全部串口(3个),并把串口数据从接收端发送出去
仅作为一个例程库使用
单片机源程序如下:
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
//ALIENTEK Mini STM32开发板范例代码3
//串口实验
int main(void)
{
u8 t;
u8 len;
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
uart1_init(72,9600); //串口初始化为9600
uart2_init(72,9600); //串口初始化为9600
uart3_init(72,9600); //串口初始化为9600
LED_Init(); //初始化与LED连接的硬件接口
while(1)
{
if(USART1_RX_STA&0x8000)
{
len=USART1_RX_STA&0x3fff;//得到此次接收到的数据长度
printf("\r\n您发送的消息为:\r\n");
for(t=0;t<len;t++)
{
USART1->DR=USART1_RX_BUF[t];
while((USART1->SR&0X40)==0);//等待发送结束
}
printf("\r\n\r\n");//插入换行
USART1_RX_STA=0;
}
if(USART2_RX_STA&0x8000)
{
len=USART2_RX_STA&0x3fff;//得到此次接收到的数据长度
printf("\r\n您发送的消息为:\r\n");
for(t=0;t<len;t++)
{
USART2->DR=USART2_RX_BUF[t];
while((USART2->SR&0X40)==0);//等待发送结束
}
printf("\r\n\r\n");//插入换行
USART2_RX_STA=0;
}
if(USART3_RX_STA&0x8000)
{
len=USART3_RX_STA&0x3fff;//得到此次接收到的数据长度
printf("\r\n您发送的消息为:\r\n");
for(t=0;t<len;t++)
{
USART3->DR=USART3_RX_BUF[t];
while((USART3->SR&0X40)==0);//等待发送结束
}
printf("\r\n\r\n");//插入换行
USART3_RX_STA=0;
}
}
}
复制代码
所有程序51hei提供下载:
c8t6多串口(成功)把接收到的数据发送出来.7z
(83.89 KB, 下载次数: 270)
2021-2-15 02:48 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
mouse_ox
时间:
2021-2-15 12:06
多串口例程学习一下!
作者:
YEON丶丶
时间:
2021-3-27 14:42
ganxiefenxiang
作者:
bd4sl
时间:
2021-4-15 22:42
真好需要这方面资料学习
作者:
美琴的备胎
时间:
2021-4-20 20:40
这个不行的 下载到c8t6一个都运行不了
作者:
wyqf
时间:
2021-5-16 20:26
美琴的备胎 发表于 2021-4-20 20:40
这个不行的 下载到c8t6一个都运行不了
是不是波特率设置错误,我自己实测可用
作者:
banzhiyang
时间:
2023-10-6 10:20
刚好要学习到,好东西,感谢分享!!!!
作者:
wenhuaxiao
时间:
2024-6-10 10:03
正要用到3个串口,谢谢了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1