请选择 进入手机版 | 继续访问电脑版

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

基于STM32实例-用按键控制串口发送数据(文末附代码)

STMCU小助手 发布时间:2021-9-14 13:42
实例介绍
    视频中是实验效果:
    按下按键,串口调试助手接收区显示接收到的字符“1”,同时LED2亮一下表示发送成功。
    开发板用的是STM32F03ZET6芯片。


    主函数main.c代码如下:

  1. #include "SysTick.h"
  2. #include "led.h"
  3. #include "key.h"
  4. #include "uart.h"


  5. /*************************************************
  6. *函数名:主函数
  7. *函数功能:按下按键KEY_UP,向串口发送字符1
  8. *输入:无
  9. *输出:无
  10. **************************************************/

  11. int main()
  12. {
  13.   SysTick_Init(72);                 //初始化延时函数
  14.   LED_Init();                       //初始化LED            
  15.   KEY_Init();                       //初始化按键
  16.   USART1_Init(9600);                //初始化串口1,波特率9600


  17.   while(1)
  18.   {
  19.     if(K_UP == 1)                     //判断上按键是否按下
  20.     {
  21.       delay_ms(20);                   //按键消抖
  22.       if(K_UP == 1)
  23.       {
  24.         USART_SendData(USART1,'1');   //发送字符1
  25.         led2=0;                       //led2亮,表示发送成功
  26.         delay_ms(500);
  27.       }
  28.     }
  29.     led2=1;                           //led2灭
  30.   }
  31. }
复制代码


从主函数可以看出,首先对外设初始化。


    while死循环中,判断按键按下之后,通过串口发送字符1到PC端的串口调试助手,同时LED2亮一下表示字符发送成功。


报错分析


    记录下我踩过的坑,以及解决的办法,希望对你能有帮助。


    当时用的标准库开发,一顿操作猛如虎,敲完代码,点击Rebuild图片,好家伙报了5个Errors。
18.png
    之前没遇到过这种报错,网上搜一下只是得到了笼统的答案,没有具体指出如何操作。   


    产生如下报错,原因是编译器没有找到XXX函数的定义。

  1. XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o).
复制代码
分为如下两种情况,我遇到的是第二种:
XXX函数的头文件没有包含进工程里面,检查下图Include Paths是否缺少XXX所在源文件(.c文件)的头文件路径。
16.png
XXX函数所在的源文件没有加入到工程里面。检查了一下,发现工程中缺少stm32f10x_usart.c这个串口外设库文件,添加上就行了。
17.png
总结
    有时候为了偷懒,把旧工程文件复制一份,在此基础上建新工程。但是,复制一时爽,修改火葬场,两个工程之间细微的差别可能会造成各种各样的报错。


代码如下:
https://pan.baidu.com/share/init?surl=AvGKZ6u4nL4mi8cEyY0s-g
提取码:
游客,如果您要查看本帖隐藏内容请回复


文章出处:STM32嵌入式开发

收藏 评论0 发布时间:2021-9-14 13:42

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版