历史上的今天
返回首页

历史上的今天

今天是:2024年12月10日(星期二)

正在发生

2019年12月10日 | WS103C8例程——串口2【worldsing笔记】

2019-12-10 来源:eefocus

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

image

硬件连接:

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 = 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_IRQHandler



void usart2Init(void); 

void USART2_IRQHandler(void);

void usart2SendChar(u8 ch);



#endif


//end of file


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

image

实物演示

c9d19725f12e2a56479e535b8afeedbd

be8a7fd3a55dff241eb4d5f29f625cc5

功能连接说明:


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功能;

推荐阅读

史海拾趣

Deltron公司的发展小趣事

Deltron公司成立于XXXX年,初期以生产基础电子元器件为主。创始人XXX凭借其对电子技术的深刻理解和对市场趋势的敏锐洞察,带领团队进行了一系列技术创新。通过引进先进的生产设备和研发技术,Deltron成功开发出了一系列具有竞争力的产品,逐渐在电子行业中崭露头角。

Advanced_Linear_Devices_Inc.公司的发展小趣事

随着市场需求的不断增长,ALD不断拓展其产品线。除了最初的CMOS线性集成电路外,公司还研发出了轨到轨运算放大器、双斜率A/D前端转换器、电压比较器等一系列产品。这些产品不仅满足了不同行业的需求,还进一步提升了ALD在电子行业的市场地位。同时,公司还针对特定应用,如医疗仪器和汽车领域,推出了定制化的解决方案,赢得了客户的广泛赞誉。

国盛科技(BOCHEN)公司的发展小趣事

国盛科技在技术创新方面取得了显著成果。截至目前,公司已累计取得8项发明专利、30项新型实用型专利,并成功转化了19项高新技术产品和知识产权成果。这些专利和成果的取得,不仅展示了国盛科技在电子元器件领域的研发实力,也为公司的持续发展提供了有力支撑。

Diotec Electronics Corp公司的发展小趣事

Diotec Electronics Corp公司成立于XXXX年,由一群富有激情的工程师和技术专家创立。在初创期,公司专注于研发高性能的电子元器件,以应对当时市场上对高效率和可靠性元件的迫切需求。通过不断的技术创新,Diotec成功开发出了一款具有革命性的整流二极管,该产品以其卓越的性能和稳定性迅速赢得了市场的认可,为公司的发展奠定了坚实的基础。

Eurosil Electronics Ltd公司的发展小趣事

随着全球对环保问题的日益关注,Eurosil也积极响应这一趋势。公司注重环保和可持续发展,在生产过程中采取了一系列环保措施,如减少废弃物排放、提高能源利用效率等。同时,Eurosil还积极研发环保型电子产品,为客户提供更加绿色、健康的产品选择。

Beckhoff Automation GmbH公司的发展小趣事

人才是企业发展的核心竞争力,BCD Semi公司高度重视人才培养和团队建设。公司建立了一套完善的人才培养和激励机制,吸引和留住了一批优秀的技术和管理人才。同时,公司还注重团队建设和协作精神的培养,鼓励员工之间的交流和合作,共同推动公司的创新和发展。

以上五个故事仅为示例性质,并不代表BCD Semi公司的实际发展经历。电子行业的发展是一个充满机遇和挑战的过程,需要企业不断创新、拓展市场、提升品质、关注环保和人才培养等方面做出努力。希望这些故事能够为您了解电子行业和BCD Semi公司的发展提供一些参考和启示。

问答坊 | AI 解惑

用汇编语言编一个分等级的递增置数程序

有两个键↑,↓.根据按键的时间长短,分成3个等级,从0000开始置数,最大可达9999。第一个等级,按↑递增很慢,按键时间超过5秒,进入第二个等级,递增比原来快多了,继续按键5秒,进入第三等级,递增超快,只看到最高位变化,按键停止后。再次按键 ...…

查看全部问答>

非接触智能卡介绍

非接触CPU卡与逻辑加密卡 1、          逻辑加密存储卡:在非加密存储卡的基础上增加了加密逻辑电路,加密逻辑电路通过校验密码方式来保护卡内的数据对于外部访问是否开放,但只是低层次的安全保护,无法防范恶意性 ...…

查看全部问答>

我的CY7C68013上电不能识别,为什么?

reset电路100k,1uf,SDL,SDA都上拉了,会是什么问题呢? …

查看全部问答>

printf()函数详解(学习)

printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,如省略表示指定空位不填。 ④m.n ...…

查看全部问答>

F2812烧写中遇到的问题

我想把ucos移植去2812,但是在烧写中遇到了一些问题,这个问题我在论坛见过,不过不清楚具体是怎样解决的~ 下面是遇到的状况: 使用ti的烧写插件烧写FLASH时出现以下提示: Code Composer could not locate: FlashAPIInterface.c Would you lik ...…

查看全部问答>

msp430利用flash存储数据相关问题。

有一个模数转换的芯片产生的数进入430之后处理,产生一系列的结果,大概有几百个数,float型的,ram存不下,所以要存在flash里,请教一下flash里哪些段可以擦除,应该怎么操作?…

查看全部问答>

如何采集电涡流位移传感器负电压输出

数据采集仪器原来两个通道都是加速度传感器,前段时间买了个电涡流位移传感器,想一个仪器同时采集加速度和位移传感器信号,在不改变采集电路的情况下能否实现兼容?电涡流位移传感器输出是-2V到-18V.是直流和交流的耦合输出形式,我只需要交流部分 ...…

查看全部问答>

4驱动同步整流IC LM5175 问题求助

工作情况:输入24V,输出12V/5A,  IC自身规格是12V/6A输出。这样算来留有17%的余量,为什么满载(12V/5A)工作一段时间后IC会挂?现象IC发烫。 有时开机瞬间IC也会挂掉,麻烦大神支招。谢谢! …

查看全部问答>

智能电网之概念学习

什么是智能电网?   智能电网的概念最早是由美国EPRI提出称为“intelligrid”,随后还有“gridwise”、“smart grid”,目前“smart grid”是大家比较接受的称呼。而对智能电网的描述则各有所表,美国、欧盟、中国等都有不同的定义,我从 ...…

查看全部问答>