博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WS103C8例程——串口2【worldsing笔记】
阅读量:5263 次
发布时间:2019-06-14

本文共 3808 字,大约阅读时间需要 12 分钟。

在板上调试Usart2功能:用Jlink 6Pin接口连接WStm32f103c8的Uart2,PC机向mcu发送数据,mcu收到数据后数据加1,回传给PC,并把

D1 指示灯状态取反.

硬件连接:

1、R27 悬空不焊接;

2、将P输出TTL接口的TX连接到板的RX2;

3、将P输出TTL接口的RX连接到板的TX2;

 

串口配置uart2.c:

/*------------------------------------------------------- * @ 功能:usart2Init()串口2初始化 9600, 8, N, 1 *         PA2 -> TX2 *         PA3 -> RX2 * @ 参数:无  * @ 返回:无 *------------------------------------------------------- */void usart2Init(void) {    USART_InitTypeDef USART_InitStructure;    NVIC_InitTypeDef NVIC_InitStructure;    GPIO_InitTypeDef GPIO_InitStructure;    RCC_APB2PeriphClockCmd(UART_GPIO_CLK | RCC_APB2Periph_AFIO, ENABLE);    if(UART == USART1)      RCC_APB2PeriphClockCmd(UART_CLK, ENABLE);    else      RCC_APB1PeriphClockCmd(UART_CLK, ENABLE);            NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);    NVIC_InitStructure.NVIC_IRQChannel = UART_IRQ_N;    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;    NVIC_Init(&NVIC_InitStructure);    GPIO_InitStructure.GPIO_Pin = UART_RX_PIN; //RX     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;    GPIO_Init(UART_GPIO, &GPIO_InitStructure);    GPIO_InitStructure.GPIO_Pin = UART_TX_PIN; //TX    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    GPIO_Init(UART_GPIO, &GPIO_InitStructure);  USART_StructInit(&USART_InitStructure);    USART_Init(UART, &USART_InitStructure);        USART_ITConfig(UART, USART_IT_RXNE, ENABLE);    USART_Cmd(UART, ENABLE);}/*------------------------------------------------------- * @ 功能:中断接收,数据值+1再发送 * @ 参数:无  * @ 返回:无 *------------------------------------------------------- */void UART_IRQ_HANDLER(void) {    char ch;    if (USART_GetITStatus(UART, USART_IT_RXNE) != RESET)     {        ch = USART_ReceiveData(UART);        usart2SendChar(ch + 1);        LED_REV();    }}/*------------------------------------------------------- * @ 功能:发送 * @ 参数:无  * @ 返回:无 *------------------------------------------------------- */void usart2SendChar(u8 ch) {    while (USART_GetFlagStatus(UART, USART_FLAG_TC) == RESET);    USART_SendData(UART, (uint8_t)ch);    while (USART_GetFlagStatus(UART, USART_FLAG_TC) == RESET);}

 

uart2.h

/********************************************************************************  * @File   : uart1.h  * @Author : worldsing  * @Version: V0.1  * @Date   : 2014/04/05  * @Brief  :  *******************************************************************************  * @Attention:  */#ifndef __UART1__#define __UART1__#include "stm32f10x.h"#include "system_stm32f10x.h"#include "stm32f10x_rcc.h"#include "stm32f10x_gpio.h"#include "stm32f10x_usart.h"#include "misc.h"#include "uart.h"#define UART               USART2#define UART_GPIO          GPIOA#define UART_CLK           RCC_APB1Periph_USART2#define UART_IRQ_N         USART2_IRQn#define UART_TX_PIN        GPIO_Pin_2#define UART_RX_PIN        GPIO_Pin_3#define UART_GPIO_CLK      RCC_APB2Periph_GPIOA#define UART_IRQ_HANDLER   USART2_IRQHandlervoid usart2Init(void); void USART2_IRQHandler(void);void usart2SendChar(u8 ch);#endif//end of file

 

 

上位机发送55,板回复56,LED状态取反;

 

实物演示

 

 

功能连接说明:

1、使用板 Uart1 的232电平接口时把R26焊接成0R,P1的pin17, p18悬空;

2、使用板 Uart2 的232电平接口时把R27焊接成0R,R17、R12悬空、P2的pin2、pin3悬空;

4、使用板 Uart1 的TTL电平接口时把R26悬空,信号连接到P1的pin17, p18;

5、使用板 Uart2 的TTL电平接口时把R27悬空,信号连接到P3的pin9, pin12或连接到P2的pin2、pin3;

6、使用板 USB转串的TTL电平接口时,直接连接到P1的pin15,pin16;

7、使用板 USB转串连接到CPU内部的uart1时,P1的pin17与pin15短接,pin18与pin16短接;

8、使用板 Uart2的485接口时,R17和R12焊接0R,P2的pin2、pin3悬空,P3的pin9, pin12悬空,R27悬空;

9、使用板 USB接口连接到CPU是,焊接R14,R15为22R,R3,R4悬空,R1,R2悬空;

10、使用板 CAN接口连接到CPU是,焊接R1,R2为22R,R3,R4悬空,R14,R15悬空;

11、使用板 不焊接CPU时可以做独立的1通道USB转串功能;

12、使用板 不焊接CPU时可以做独立的2通道TTL转232功能;

13、使用板 不焊接CPU时可以做独立的1通道485转TTL功能,外置三级管;

14、使用板 不焊接CPU时可以做独立的1通道CAN转TTL功能;

转载于:https://www.cnblogs.com/worldsing/p/3653979.html

你可能感兴趣的文章
MetaWeblog API Test
查看>>
反弹SHELL
查看>>
关闭Chrome浏览器的自动更新和升级提示
查看>>
移动、尺寸改变
查看>>
poj2255Tree Recovery【二叉树重构】
查看>>
tcpcopy 流量复制工具
查看>>
vue和react的区别
查看>>
第十一次作业
查看>>
负载均衡策略
查看>>
微信智能开放平台
查看>>
ArcGIS Engine 中的绘制与编辑
查看>>
Oracle--通配符、Escape转义字符、模糊查询语句
查看>>
c# 文件笔记
查看>>
第一页 - 工具的使用(webstorm)
查看>>
Linux 进程资源用量监控和按用户设置进程限制
查看>>
IE浏览器整页截屏程序(二)
查看>>
D3.js 之 d3-shap 简介(转)
查看>>
制作满天星空
查看>>
类和结构
查看>>
CSS3选择器(二)之属性选择器
查看>>