搜索
查看: 1620|回复: 2

[原创] STM8-SO8-DISCO -- 10、STM8L050 串口输出测试

[复制链接]

该用户从未签到

100

主题

1255

帖子

191

蝴蝶豆

论坛元老

最后登录
2024-1-26
发表于 2019-2-16 11:15:38 | 显示全部楼层 |阅读模式
本帖最后由 TLLED 于 2019-2-16 11:14 编辑

    使用STM8L050芯片串口输出数据,使用半双工模式。

    一、引脚配置


    使用STM8CubeMX来配置串口引脚。
    101.png



    二、硬件部分


    使用USB-TTL模块连接PA0引脚和地引脚。


   三、程序部分
   
    3.1、串口部分程序
   
  1. <font size="3">
  2. //uart.c
  3. #include "stm8l15x.h"
  4. #include "stm8l15x_usart.h"

  5. //串口半双工通信
  6. void uart_init_halfduplex(void)
  7. {
  8.   //设置串口端口
  9.   GPIO_Init(GPIOA, GPIO_Pin_0, GPIO_Mode_Out_OD_HiZ_Fast);
  10.   
  11.   CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);
  12.   SYSCFG_REMAPPinConfig(REMAP_Pin_USART1TxRxPortA,ENABLE);
  13.   //配置串口
  14.   USART_DeInit(USART1);

  15.   USART_Init(USART1, (uint32_t)115200, USART_WordLength_8b, USART_StopBits_1, USART_Parity_No, (USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx));
  16.             
  17.   //使能半双工模式
  18.   USART_HalfDuplexCmd(USART1,ENABLE);
  19.   
  20.   USART_Cmd(USART1, ENABLE);

  21. }


  22. void Uart_SendDat( uint8_t dat)
  23. {
  24.   USART_SendData8(USART1, dat);
  25.   while(USART_GetFlagStatus( USART1, USART_FLAG_TC) == RESET);
  26. }

  27. void UART_SendString ( uint8_t *s)
  28. {
  29.   while (*s != 0)
  30.   {
  31.     Uart_SendDat(*s++);
  32.   }
  33. }


  34. //uart.h
  35. #ifndef __UART_H
  36. #define __UART_H

  37. void uart_init_halfduplex(void);
  38. void Uart_SendDat(uint8_t dat);
  39. void UART_SendString ( uint8_t *s);

  40. #endif

  41. </font>
复制代码
   
    3.2、主程序

   
  1. <font size="3">void main(void)
  2. {

  3.   CLK_Config();           //时钟初始化
  4.   
  5.   Delay(0x2fffff);        //延时5S            
  6.   
  7.   led_init();             //led初始化
  8.   //swim_init();
  9.   uart_init_halfduplex();
  10.   
  11.   while (1)
  12.   {
  13.     led_tog();            //LED取反            
  14.     //swim_tog();           //SWIM引脚取反
  15.     UART_SendString ( "www.stmcu.org.cn\r\n");
  16.     UART_SendString ( "stm8l050 串口测试\r\n");
  17.    
  18.     Delay(0xffff);
  19.   }
  20. }</font>
复制代码

   
    四、程序执行结果

    102.png
   



回复

使用道具 举报

该用户从未签到

29

主题

322

帖子

15

蝴蝶豆

论坛元老

最后登录
2021-4-23
发表于 2019-2-16 19:05:02 | 显示全部楼层
这个单片机引脚真少!!!
回复 支持 反对

使用道具 举报

该用户从未签到

100

主题

1255

帖子

191

蝴蝶豆

论坛元老

最后登录
2024-1-26
 楼主| 发表于 2019-2-16 21:52:13 | 显示全部楼层
pythonworld 发表于 2019-2-16 19:05
这个单片机引脚真少!!!

是啊,8个引脚,IO口最多就6个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-26 23:52 , Processed in 1.182543 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表