STM8L USART串口调试

2020-02-14来源: eefocus关键字:STM8L  USART  串口调试

最近学习开发STM8 MCU,,刚入手这颗MCU,对很多功能不太了解,只能一边开发一边学习,记录一下学习过程,如有错误的地方,敬请指正。


MCU:STM8L151K4 

环境:IAR FOR STM8


因项目需求,需要调试USART功能,刚开始时候手里没有原理图,只有板子和datasheet,从datesheet上看到USART RX TX管脚为PC2 PC3. 

这里写图片描述 

于是便直接配置PC2 PC3,然后进行初始化,但是代码跑起来一直没有接收到MCU发送出去的数据,查看代码和datasheet,然后网上查找资料,发现USART有remappin功能,将PC3 PC2 映射到PA2 PA3上, 

这里写图片描述 

于是便询问硬件,确定板子上的USART硬件管脚为PA2 PA3,于是重新配置相关代码,重映射管脚,测试ok.


虽然浪费了点时间,但是还是有些收获的。


部分代码如下:


#define USART_TX_PORT  GPIOA

#define USART_RX_PORT  GPIOA


#define USART_TX_PINS  GPIO_Pin_2

#define USART_RX_PINS  GPIO_Pin_3



void uart_gpio_init()

{

    GPIO_Init(USART_TX_PORT,USART_TX_PINS, GPIO_Mode_Out_PP_Low_Fast);


    GPIO_Init(USART_RX_PORT,USART_RX_PINS, GPIO_Mode_In_PU_No_IT);

}


void uart_init(void)

{

    uart_gpio_init();   


    CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);


    //remapping

    SYSCFG_REMAPPinConfig(REMAP_Pin_USART1TxRxPortA,ENABLE);


    USART_DeInit(USART1);


    /* UART1 configuration ------------------------------------------------------*/

    /* UART1 configured as follow:

        - USARTx = 1

        - BaudRate = 9600baud  

        - USART_WordLength = 8 Bits

        - One Stop Bit

        - No parity

        - Receive and transmit enabled

    */

    USART_Init(USART1, (uint32_t)9600, USART_WordLength_8b, USART_StopBits_1, USART_Parity_No,  (USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx));


    USART_Cmd(USART1, ENABLE);

}


如果USART硬件直接接到PC2 PC3上,就不需要SYSCFG_REMAPPinConfig进行重映射。

关键字:STM8L  USART  串口调试 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic488228.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8 UART中断发,中断收
下一篇:STM8S的中断系统

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8L的USART1串口通信详解 含例程
;   PC_CR2_C23  =1;//输出摆率10M         PC_DDR_DDR3 =1;//输出高电平,TX空闲状态为高电平,如果不设置,会莫名奇妙的发送0x00           CLK_PCKENR1_PCKEN15=1;//开启USART外设时钟          //开启引脚的UART功能     //00: USART1_TX on PC3 and
发表于 2020-02-08
STM8L学习笔记一 TIM2定时器设定系统工作计时
//定时器2配置,1毫秒产生一次中断,用于系统计时void TIM2_Init(void)   { CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,ENABLE);//将主时钟信号送给定时器4(L系列单片机必需)TIM2_TimeBaseInit(TIM2_Prescaler_16,TIM2_CounterMode_Up,0x7D);            //定时器4,将主时钟16分频.自动装载FA=125TIM2_SetCounter(0xFA);     
发表于 2020-02-04
STM8L101-IIC接口操作M24LR64地址错误无ACK响应的波形
M24LR64可以做为EEROM来看待,STM8L101单片机可通过IIC接口对其进行读写。但在调试时,误把M24LR64的地址搞错,在发送完设备选择码之后,主设备(STM8L101)无法接收到从机(M24LR64)的ACK响应,波形如下图。第9个时钟,SDA为低电平则响应。一定要注意M24LR64工作在RF模式和IIC模式时,各引脚的含义是不同的。
发表于 2020-02-03
STM8L101-IIC接口操作M24LR64地址错误无ACK响应的波形
STM8L051F3 硬件I2C从机实例--新手导航
这是我写的第一篇有关于技术的文章,可能写的不是很好,仅供参考。先介绍一下背景,我是第一次接触STM的芯片,以前接触过都是基于51的芯片,算是有一点基础吧。因为公司的项目需要用到STM8L051F3的硬件I2C作为从机送数据,把自己从接触到调通遇到的问题记录一下,有需要的可以参考一下。这篇文章是以相对新手的水平去写给新手参考的,所以我会尽量写的详细点。1.首先我们需要查看数据手册,看下硬件I2C的接口是哪个端口,我用的是STM8L051F3这一块芯片。这款芯片的I2C应该是不能复用别的端口的,反正手册我没查到,只能用C0跟C1。2.接下来开始初始化I2C需要的设置。(这里我只讲7位地址的。)void I2C_Init(void
发表于 2020-02-02
STM8L051F3 硬件I2C从机实例--新手导航
stm8l15x TIM3 PWM配置
<span style="white-space:pre"> </span>CLK_PeripheralClockConfig(CLK_Peripheral_TIM3, ENABLE);/* set SB_TX_LOCK mode: PWM mode,T = 60us,  Duty Ratio: 3/4  represents  send bit 1 1/2  represents  send bit 0 1/4  represents  a  respond  &n
发表于 2020-01-30
【STM8L】STM8L之timer2产生PWM
一、简介本文介绍STM8L系列如何使用timer2产生38K频率的PWM。其中,本文使用的是timer2的第1通道(PB0)。二、实验平台编译软件:IAR for STM8 1.42.2硬件平台:stm8l101f3p6开发板仿真器:ST-LINK库函数版本:STM8L_STMTouch_Lib_V1.1.0三、版权声明四、实验步骤1、工程中添加自己写的定时器2的驱动1)写一个驱动GUA_Timer2_PWM.c (存放在工程的USER文件夹中)//******************************************************************************   
发表于 2020-01-30
【STM8L】STM8L之timer2产生PWM
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved