Cube的基本配置
打开Cube 选择芯片的型号STM32G431RB
芯片型号的选型
systick的配置 :Debug默认配置就好了
如果芯片采用F1(M3)系列的 就有讲究 如果选择默认的配置,程序就只可以烧了一次,如果想再次烧了的话,就只能串口烧录才会边正常
如果是F4(M4)以上的系列 就可以不用配置那个模式
时钟的配置
选择高速外部晶振 ----->外部晶振
时钟树的配置
外部晶振用24M 因为这是由于外部的电路决定的
需要改的 选择HSE PLLCLK
24 3 20 最后得到的要80M!!!
中断分组的优先级配置
中断的分组都统一为4bit(如果systick的优先级改了15变成0的话 delay的优先级后面就不用改了 如果没改的话 就要改!!!)
因为这个涉及到了在串口里面写延时的函数,如果想用延时函数的话,systick的优先级一定要最高,不然程序会被卡在延时函数,不能够完成串口里面的功能
电路原理图
我们可以看出到PC8-PC15是单片机的led引脚,当给高电平的时候,LED不亮
PD2为芯片的锁存器的引脚,当为低电平的时候,数据不能通过,高电平数据可以通过。
总的来说就是:
LED的代码配置
GPIO_Output(PC8~PC15)高电平:不亮
GPIO_Output(PD2)低电平:不能写数据
PD2一定不要忘记了!!!
Key按键的IO口配置
原理图
按键的代码配置
GPIO_Input(PA0 PB0 PB1 PB2)
生成工程配置的选择
这里的配置都是通常的配置 按照个人的习惯即可
按键和点灯的 代码的配置
底层代码的分析:gpio文件里面写就好了
ucled这个值是为了方便我