原创 【博客大赛】STM32学习-RS485测试(USART3的使用)

2013-10-30 09:14 9117 18 28 分类: MCU/ 嵌入式 文集: STM32F1学习笔记

下位测试平台上,RS485接在了USART3上

20130806183055689.jpg
PB10接TX,PB11接RX,PB0接DE,PB1接/RE. MAX485的DE、/RE相当于发送使能和接收使能,见下表。
20130806183308543.jpg
 
RS485适用于组成网络,这里只是测试,故上位平台使用了USB转485的工具,相当于虚拟出一个串口,这种情况跟测试232基本没有什么区别了。
 
下位最重要的是USART3的配置,特别注意下面加红加粗的那种,容易忘掉:
void USART3_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
 
/* 使能 USART3 时钟*/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); 
 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_1);
GPIO_SetBits(GPIOB,GPIO_Pin_0);
 
/* USART3 使用IO端口配置 */    
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);    
 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入
GPIO_Init(GPIOB, &GPIO_InitStructure);   //初始化GPIOA
 
/* USART3 工作模式配置 */
USART_InitStructure.USART_BaudRate = 115200; //波特率设置:115200
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //数据位数设置:8位
USART_InitStructure.USART_StopBits = USART_StopBits_1; //停止位设置:1位
USART_InitStructure.USART_Parity = USART_Parity_No ;  //是否奇偶校验:无
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //硬件流控制模式设置:没有使能
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//接收与发送都使能
USART_Init(USART3, &USART_InitStructure);  //初始化USART3
 
/*使能串口3的发送和接收中断*/
USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
USART_Cmd(USART3, ENABLE);// USART3 Enable
}
 
下图是上位收到的字符串:
20130806183717694.jpg
 
完整工程和MAX485的datasheet见附件。
 

文章评论10条评论)

登录后参与讨论

用户1857685 2015-10-12 12:26

挺好,学习一下

飞言走笔 2015-8-7 09:38

:-)

用户1849071 2015-8-6 11:31

好了,修改了一下

用户1849071 2015-8-6 10:35

不行啊

用户1082625 2015-7-22 16:12

谢谢分享

用户440812 2013-11-22 10:31

我来看一看

用户451773 2013-10-30 08:43

不错,很有帮助

用户313571 2013-8-19 08:39

正在学习中...

飞言走笔 2013-8-13 21:37

呵呵,希望对你有帮助^_^

用户612809 2013-8-13 08:13

刚好需要,谢谢博哥
相关推荐阅读
飞言走笔 2017-01-06 21:56
2017,新的博客旅程
EDNChina 改版终于成功了!祝贺! 2017年,开始新的旅程~ ...
飞言走笔 2016-06-01 10:17
【博客大赛】《白鹿原》读后
《白鹿原》这本书已经买了很久,多次以来,都是只翻看几页,顶多几章就放下了,觉得这是一个大部头,得有足够的时间才行。前几天陈忠实先生去世的消息传来,让我很震惊和惭愧。 一口气读完这本书,畅快淋漓,又意...
飞言走笔 2016-03-26 16:42
【博客大赛】《毛斯朝》读后
这本书最早是在凤凰卫视曾子墨主持的一期关于沈志华先生的《世纪大讲堂》节目中知晓的。但是一直拖到今天才读完。 说实话,书的主要内容与当前官方的宣传口径有很多不一致的地方,而沈先生作为中国掌握苏联档...
飞言走笔 2016-03-08 13:46
【博客大赛】蓝牙4.0低功耗技术及其认证要求
详见附件 ...
飞言走笔 2016-02-02 14:20
【转】蓝牙4.0协议官方手册(一)——通用属性配置文件
转自:http://blog.csdn.net/jinzhichaoshuiping/article/details/43370009 通用属性配置文件 (GATT)——该说明书定义了通用属性配置...
飞言走笔 2016-01-31 23:24
【博客大赛】脑洞大开、三观重塑——《人类简史》读后
终于读完了《人类简史》,没有把这本书拖到二月份,这也是2016年读完的第一本书。之前也有所耳闻,但是没有太在意,倒是罗胖子的跨年演讲上偶然提到,不知怎么就勾起了阅读此书的欲望。 本文的标题用了“脑洞...
我要评论
10
18
关闭 站长推荐上一条 /2 下一条