OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4137|回复: 5

急需简单的串行自发自首0x55程序

[复制链接]

14

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2013-9-4
在线时间
0 小时
发表于 2013-9-21 09:32:55 | 显示全部楼层 |阅读模式
 
我想用串行通讯收发,可是为什么debug调试串行自收自发0x55,收不到结束符号0x0d和0x0a呢,谁发个完整的串行自发自收的简单程序,谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2013-9-21 09:45:58 | 显示全部楼层
发的内容由你来决定,串口本身不会生成结束符号。
回复 支持 反对

使用道具 举报

14

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2013-9-4
在线时间
0 小时
 楼主| 发表于 2013-9-21 11:44:49 | 显示全部楼层
回复【2楼】ricefat:
---------------------------------
我发的就是20个0x55,再加上0x0d和0xoa,用数组接收,可是问什么收不到0x0d和0x0a啊
回复 支持 反对

使用道具 举报

14

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2013-9-4
在线时间
0 小时
 楼主| 发表于 2013-9-21 11:48:32 | 显示全部楼层
回复【3楼】连志威:
---------------------------------
麻烦大神指点一下
回复 支持 反对

使用道具 举报

20

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
222
金钱
222
注册时间
2013-9-21
在线时间
0 小时
发表于 2013-9-21 20:39:13 | 显示全部楼层
回复【楼主位】连志威:
---------------------------------
#include<usart.h>
void uart_init(u32 bound)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
//使能IO口和串口时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1|RCC_APB2Periph_AFIO,ENABLE);
//复位串口
USART_DeInit(USART1);
//设置IO口参数
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);
//设置串口参数
USART_InitStructure.USART_BaudRate=bound;
USART_InitStructure.USART_WordLength=USART_WordLength_8b;
USART_InitStructure.USART_StopBits=USART_StopBits_1;
USART_InitStructure.USART_Parity=USART_Parity_No;
USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_Init(USART1,&USART_InitStructure);
//设置中断
#if EN_USART1_RX
NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);

USART_ITConfig(USART1,USART_IT_RXNE, ENABLE);
#endif
USART_Cmd(USART1,ENABLE);
}
void USART1_IRQHandler(void)
{
u16 res;
res=USART_ReceiveData(USART1);
USART_SendData(USART1, res);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
USART_ClearFlag(USART1,USART_FLAG_TC);
}
楼主,看看这个行不行
回复 支持 反对

使用道具 举报

14

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2013-9-4
在线时间
0 小时
 楼主| 发表于 2013-9-22 09:20:01 | 显示全部楼层
回复【5楼】jikaishihuaidan:
---------------------------------
好的,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-12 18:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表