从零开始学STM32(开贴记录我的学习历程)

2019-07-24 13:22发布

本人以前学过51单片机,知道ARM这个东西后一直向往,最近终于入手一块“战舰V3 精英板”(买板子的时候,没注意看板子资源,看到“精英”二字,以为是STM32F103ZET6板子里面最牛的,而且看价格还不是最贵的,果断买了精英板),经过几天的C语言学习、keil安装及使用学习、Jlink使用学习、工程模板(基于固件库)建立……我的STM32学习终于走上正轨。之前听过别人分享如何学习STM32,其中强调了一点,就是加入一个论坛,在论坛中跟大家一起学习,共同进步,于是今天就开贴(以前水过,从来没发过贴),从零开始学习STM32(以前学过51,但是没了解过STM32,不知道算不算从零开始),记录我的学习历程,记录一个系统性地学习STM32的过程,以求跟坛友共同进步,同时以后传递给别人准备学STM32的人一些经验。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
忘月19920216
1楼-- · 2019-07-28 21:44
忘月19920216
2楼-- · 2019-07-28 23:12
 精彩回答 2  元偷偷看……
忘月19920216
3楼-- · 2019-07-29 01:59
昨晚还截了串口调试的截图忘记发上来了,现在补上,留作纪念

而且一不小心还发现拔了J-Link之后板子的程序就不跑了,情况是这样的:
    我要拔掉J-link的USB,插上自己的USB转串口试下,我拔的是USB接电脑那一端,发现板子上串口开启的指示灯灭了,然后插上,又重新启动了(重新初始化串口,我加了蜂鸣器,初始化的时候会响一下),心里纳闷这板子还不想让我插自己的USB转串口了(电脑这一边的USB已插满,想就近拔掉J-link换自己的串口),于是就只能两个都插着,测试了一下,自己的USB转串口是可用的,今天突然想到STM32的JTAG口上一般设计有一根复位信号线,可能是这根线造成的影响,于是去看了下原理图,果然是有:

当然我现在还没有找到资料或证据确认是这个的原因,等回宿舍的时候试一下把J-link跟板子连接的排线拔了看板子自己能不能跑程序,顺便测一下复位线的电平在拔下前后的变化;
342785896
4楼-- · 2019-07-29 05:31
顶楼主,加油
忘月19920216
5楼-- · 2019-07-29 10:15
今天回来后发现自己昨天的“UART_Init”函数名错误原来是自己编写的uart.c文件没有添加到工程里去,工程里的SYSTEM里面有一个原子的usart.c,里面的初始化函数的函数名为“uart_init”,所以我后面修改成“uart_init”后没再报错,今天把SYSTEM里面那个文件删了,添加自己的uart.c,跑起来还是有些问题,串口助手向板子连续发送的时候,板子就会异常,不再能刷新接收到的数据,总感觉是接收数据寄存器或者是状态寄存器那里因为连续发送的时候,我没有及时读出来,导致满了的原因,于是查了下文档,在读数据之前强行清除了状态寄存器的 [size=13.3333px]RXNE位,程序跑起来才正常(当然我不清楚这样可不可以,但是想到这个程序的目的是为了测试下串口能不能收发,于是就先跑通再说,周末准备学下中断,将串口中断用上来):[mw_shl_code=applescript,true]   while(1)
        {
      USART1->SR &= ~(1<<5);  // 读之前清零一下
      data_buf = USART_ReceiveData(USART1);
      USART_SendData(USART1,data_buf);
      delay_ms(500);
        }[/mw_shl_code]

忘月19920216
6楼-- · 2019-07-29 16:06
342785896 发表于 2016-3-11 14:53
顶楼主,加油

谢谢

一周热门 更多>