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

2019-07-24 13:22发布

本人以前学过51单片机,知道ARM这个东西后一直向往,最近终于入手一块“战舰V3 精英板”(买板子的时候,没注意看板子资源,看到“精英”二字,以为是STM32F103ZET6板子里面最牛的,而且看价格还不是最贵的,果断买了精英板),经过几天的C语言学习、keil安装及使用学习、Jlink使用学习、工程模板(基于固件库)建立……我的STM32学习终于走上正轨。之前听过别人分享如何学习STM32,其中强调了一点,就是加入一个论坛,在论坛中跟大家一起学习,共同进步,于是今天就开贴(以前水过,从来没发过贴),从零开始学习STM32(以前学过51,但是没了解过STM32,不知道算不算从零开始),记录我的学习历程,记录一个系统性地学习STM32的过程,以求跟坛友共同进步,同时以后传递给别人准备学STM32的人一些经验。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
49条回答
忘月19920216
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]

一周热门 更多>