超MINI核心板 stm32F103C8最小系统板上调试Usart2功能:用Jlink 6Pin接口连接WStm32f103c8的Uart2,PC机向mcu发送数据,mcu收到数据后数据加1,回传给PC,并把
D1 指示灯状态取反.

硬件连接:

1、R27 悬空不焊接;

2、将P输出TTL接口的TX连接到超MINI核心板 stm32F103C8最小系统板的RX2;

3、将P输出TTL接口的RX连接到超MINI核心板 stm32F103C8最小系统板的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 = ;
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 + );
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_IRQHandler void usart2Init(void);
void USART2_IRQHandler(void);
void usart2SendChar(u8 ch); #endif //end of file

上位机发送55,超MINI核心板 stm32F103C8最小系统板回复56,LED状态取反;

实物演示

功能连接说明:

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

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

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

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

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

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

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

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

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

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

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

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

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

WS103C8例程——串口2【worldsing笔记】的更多相关文章

  1. emWin(ucGui)数值显示例程 -【worldsing笔记】

    本例程下载:2.emWin5.26(ucGui)VS2008数字显示.zip   在emWin显示文本字符还是容易,我们也可以使用字符串和标准 C 库的函数来显示数值.然而,有时候这会是件困难的事.通 ...

  2. QTbaWidget控件几个例程 【worldsing笔记】

    Qt Creator自带的 QTabWidget控件几个例程 在Qt Windos版本安装后,在Example目录可以找到与QTabWidget相关的工程Demo,如果按默认安装的话他们分别是:   ...

  3. STM32串口IAP实验笔记

    STM32的IAP功能确实方便,以前对此如何实现有所了解,但是一直没去测试,这两天来练了下,可谓困难重重,搞了两天问题也一一解决,下面做些简要的笔记 IAP就是在线应用编程,方便程序升级,可以不用打开 ...

  4. 谢欣伦 - OpenDev原创例程 - 串口助手Comm Assist

    前一段时间,一位博友发邮件给我.他跟我讲说没太看懂<化繁为简系列原创教程 - 通信专题 - 串口类CxComm的使用>,请我做一个DEMO工程给他.我抽了一天时间编写并上传了一个DEMO工 ...

  5. 3.emWin5.26(ucGui)VS2008 2-D图形库-基本绘图【Worldsing笔记】

    UCGUI(emWin) 2-D图形库--之基本板绘图,在ucgui的基本绘图功能上来看,功能还是比较全的,本例程主要使用基本的接口,两个主要的概念是绘制(draw)和填充(Fill),这两的区别是一 ...

  6. MFRCC522 SPI无法通讯【worldsing笔记】

    用单片机于MRFC522与单片接时,加上485通讯后出现很诡异的像: 只要485芯片上有收到外部发送的信号时RC522就死掉,经过仿真卡在了SPI的收发部分(等待回复) u8 MFRC522Write ...

  7. stm32 时钟配置——外部时钟倍频、内部时钟倍频 【worldsing笔记】

    stm32可选的时钟源 在STM32中,可以用内部时钟,也可以用外部时钟,在要求进度高的应用场合最好用外部晶体震荡器,内部时钟存在一定的精度误差. 准确的来说有4个时钟源可以选分别是HSI.LSI.H ...

  8. 推荐《C Primer Plus(第五版)中文版》【worldsing笔记】

      老外写的C书,看了你会有一种哇塞的感觉,这里提供PDF扫描版的下在,包含数内的例程,请大家支持原版!! C Primer Plus(第五版)中文版.pdf  下载地址:http://pan.bai ...

  9. Keil Mdk5.0 破解包 和谐包【worldsing笔记】

    有关Keil MDK 5.0的介绍和下载 http://www.cnblogs.com/worldsing/p/3355911.html 下载地址 点击下载:http://pan.baidu.com/ ...

随机推荐

  1. UVa 10088 (Pick定理) Trees on My Island

    这种1A的感觉真好 #include <cstdio> #include <vector> #include <cmath> using namespace std ...

  2. android中的ellipsize设置(省略号的问题)

    textview中有个内容过长加省略号的属性,即ellipsize,可以较偷懒地解决这个问题,哈哈~ 用法如下: 在xml中 android:ellipsize = "end"   ...

  3. Redis必要的一些配置

    [root@localhost202 redis-2.8.19]# /usr/local/redis/bin/redis-server >> /data/redis-start.txt   ...

  4. addView的误区

    如果在代码中动态使用addView(v),那么v里头所有在xml里设置好的layout_xxx全部失效!

  5. 一些网站的Android客户端

    实际上就是浏览器(WebView),外面包装上了用户体验更好的外壳

  6. 【转】让apache支持中文路径或者中文文件

    本帖最后由 狂人阿川 于 2013-4-12 19:13 编辑 今天在给一美国VPS客户调试他的程序的时候.发现他的网站有中文名称.貌似apache无法认识中文路径,火狐下面能下载他的文件,IE下面不 ...

  7. HDU5739 Fantasia 树形dp + 点双缩点

    这个题当时打多校的时候有思路,但是代码能力差,没有写出来 事后看zimpha巨巨的题解,看了觉得基本差不多 核心思路:就是找出割点,然后变成森林,然后树形dp就可以搞了 关键就在重新构图上,缩完点以后 ...

  8. <译>Selenium Python Bindings 3 - Navigating

    当你想要通过webdriver导航到一个链接,正常的方式点是通过调用get方法: driver.get("http://www.google.com") Interacting w ...

  9. 总结:ADO.NET在开发中的部分使用方法和技巧

    如何使用 SqlDataAdapter 来检索多个行 以下代码阐明了如何使用 SqlDataAdapter 对象发出可生成 DataSet 或 DataTable 的命令.它从 SQL Server ...

  10. <转>DNS服务系列之二:DNS区域传送漏洞的安全案例

    DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库.这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务器因 ...