当前位置:   article > 正文

stm32学习中遇到的问题和解决方法_stlink接stm32单片机最小系统时接口接错了怎么办

stlink接stm32单片机最小系统时接口接错了怎么办

我用的是stm32f103c8t6,具体的软件可以到哔哩哔哩看江科大自协化(现在叫做江协科技)

在此记录下学习中遇到的问题。

一、stm32和st-link2的连接

最开始单片机和st-link2的连接出错了,连接下面的引脚,而且连接要一一对应,引脚可以一个一个连接,stm32和st-link2的顺序并不一定能对上。

如果没一一对应连接程序并不能下载到stm32中。a3ed5e0d5b4c460e8a6e44f75129b0e4.jpg

二、程序问题

1.注意stm32的代码结尾要空一格

2.注意下载后出现这个是因为LINK和32并没有连接好,可以检查检查LINK的线是否和32一一对应了,也可能是LINK或者32坏了…

 88549720767c412281d590bec5ac8677.png

 三、再就是OLED显示汉字程序

这个我找了好久才遇到的一个合适的,可以到哔哩哔哩搜索这个视频观看代码

【0.96寸OLED如何显示汉字(iic通信)-哔哩哔哩】 https://b23.tv/5xeB59y

也可以直接用下面的

首先要了解OLED是如何显示东西的,可以搜一搜其他人的详细讲解,然后按我理解显示东西的步骤就是先对这个东西取模,然后转换成01的信号给OLED再显示,这便要用到取模软件,江科大的资料中也有相应的软件,我们可以打开模块资料,再打开8-OLED显示屏,再打开取字模软件,再打开中景园OLE显示屏专用取模工具,点开PCtoLCD2002,再点开PCtoLCD2002应用程序就可以进行取模了

下面是取模的步骤

1.这是打开软件后的界面(有改动)

29dfa90ed04341afa763c31be960bcd1.png

 2.点开我所圈的

5a78a62152da4c3391effdc92e7cc312.png

 3.对照着图片改成一样的,别忘了点确定,最重要的是改成c51格式,和像素大小改成14(像素不改会有点问题)

fe46e64b5c434956aa3336b288d0f7aa.png

  4.输入你想要的汉字,点击生成字模并给其复制下来

75aa833657c3491e9f181de778d8f432.png

 5.接下来在江科大的资料中找到程序源码中4-1OLED显示屏的程序打开,再打开OLED_Font.h,在最后加入以下代码

  1. const  char Font_Chinese[][32]=
  2. {0x00,0x80,0x60,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00},
  3. {0x01,0x00,0x00,0xFF,0x00,0x10,0x0C,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x18,0x00},/*"你",0*/
  4. {0x10,0x10,0xF0,0x1F,0x10,0xF0,0x00,0x80,0x82,0x82,0xE2,0x92,0x8A,0x86,0x80,0x00},
  5. {0x40,0x22,0x15,0x08,0x16,0x61,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00},/*"好",1*/
  6. };

6.再打开OLED.c,在其中加入下面这串代码

  1. void OLED_ShowChinese(uint8_t Line,uint8_t Column,uint8_t num)
  2. {
  3.     uint8_t i;
  4.     OLED_SetCursor ((Line - 1)*2,(Column - 1)*16);
  5.     for(i = 0;i<16;i++)
  6.     {
  7.  OLED_WriteData(Font_Chinese[2*num[i]);
  8.     }
  9. OLED_SetCursor ((Line -1)*2+1(Column-1)*16);
  10.     for(i = 0;i<16;i++)
  11.     {
  12. OLED_WriteDataFont_Chinese[2*num+1][i]);
  13.     }
  14. }

7.再在OLED.h中加入

void OLED_ShowChinese(uint8_t Line,uint8_t Column,uint8_t num);

8.最后在主函数中加入

  1. OLED_ShowChinese(1,4,0);
  2. OLED_ShowChinese(1,5,1);

(1,4,0)也代表在OLED屏幕的第一行第四列上显示第一个汉字。OLED上便能显示你好。

四、使用小技巧

 1、Debug

①、可以用来实时监测一个变量的值 

 步骤:

       首先,选中想要查看值的变量;

        然后,右键选择add然后选择Witch1;

        然后就可以在右下方见到要看的变量;

        最后点击左上方的运行符号就可以了。

2、Ctrl+f可以搜索代码中已写的变量在哪里

3、Ctrl +空格可以找到相关的函数和变量的东西 

bdd781cab9944f3bb169a262b5534008.png

五、程序

1、呼吸灯

2、OLED显示屏

3、L298N 

4、串口(可当蓝牙,可与其他通信)

①、把接收到的字符串转换为整数(学习K210与stm32通信时补充)-----------需要用到atoi()函数

首先加上头文件#include "stdlib.h"

然后需要定义一个整数,比如int a;

还有需要转换的字符串,比如char Angle[30];Angle[0]='1 ';Angle[1]='2 ';Angle[2]='3 ';Angle[3]='\0';

然后a=atoi(Angle);

a就是123了。

以下是C语言的代码

  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. int main()
  4. {
  5. int a;
  6. char Angle[30];
  7. Angle[0]='1';
  8. Angle[1]='2';
  9. Angle[2]='3';
  10. Angle[3]='\0';
  11. a=atoi(Angle);
  12. printf("%d",a);
  13. return(0);
  14. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/83617
推荐阅读
相关标签
  

闽ICP备14008679号