你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8-SO8-DISCO -- 10、STM8L050 串口输出测试

[复制链接]
TLLED 发布时间:2019-2-16 11:15
本帖最后由 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
   



收藏 1 评论2 发布时间:2019-2-16 11:15

举报

2个回答
pythonworld 回答时间:2019-2-16 19:05:02
这个单片机引脚真少!!!
TLLED 回答时间:2019-2-16 21:52:13
pythonworld 发表于 2019-2-16 19:05
这个单片机引脚真少!!!

是啊,8个引脚,IO口最多就6个
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版