php 茶叶网站建设,潮州市工程建设网站,青岛市建设监督管理局网站,在什么网站做推广已经试了一下#xff0c;吐槽这个软件的使用好麻烦啊
安装 然后先去安装对应的pack 这个鬼玩意里找对应的芯片#xff0c;或者去官网上下载
我是在这里搜到芯片#xff0c;再去官网下载一个驱动
https://www.keil.arm.com/packs/stm32f1xx_dfp-keil/boards/ 会有一个安装…已经试了一下吐槽这个软件的使用好麻烦啊
安装 然后先去安装对应的pack 这个鬼玩意里找对应的芯片或者去官网上下载
我是在这里搜到芯片再去官网下载一个驱动
https://www.keil.arm.com/packs/stm32f1xx_dfp-keil/boards/ 会有一个安装包下载
安装好后暴力点干脆重启机器生效
打开软件新建一个项目 这里选择你的芯片
然后麻烦来了 N多运行时环境要选择作为小白一脸的懵逼
查资料呗 这个核心库是必选。 startup库是一个必选。
gpio也是我自己选的因为想测试
我有个stlink的像u盘一样的烧录器插上电脑可以在设备管理器识别 ST-Link的驱动程序
STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LINK、ST-LINK/V2、ST-LINK/V2-1 USB驱动 - 意法半导体STMicroelectronicshttps://www.st.com/zh/development-tools/stsw-link009.html#get-software有个exe下载安装后 然后给stlink接线接线图百度可得因为设备原因就不贴图了。
然后
debug配置中右上角的use选择st-link debugger再点download就成功了。
试了一下debug问题是跳出来的界面是汇编语言调试我的代码是c的看看怎么解决 后来发现这些都是头文件里的pack包中的代码就不管了只需要再c语言中添加断点就可以了。
我需要点亮led灯那么需要添加gpio的使用总是报宏没有定义 #include stm32f10x_gpio.h
终于知道为什么加头文件找不到库了 device外面那个gpio不能勾选要勾选里面那个然后就可以了。
编译通过点灯代码待会贴出来
#include stm32f10x.h
#include stm32f10x_gpio.h
#include stdio.h//C:\Users\Administrator\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc
void delay(uint32_t count)
{for (; count ! 0; count--);
}int main(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitStructure.GPIO_Pin GPIO_Pin_13;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOC, GPIO_InitStructure);while (1){GPIO_SetBits(GPIOC, GPIO_Pin_13);delay(0xFFFFFF);GPIO_ResetBits(GPIOC, GPIO_Pin_13);delay(0xFFFFFF);}}这段让led灯闪烁的代码完美执行、
led灯是主板中央预置的一个led并不是我的引脚
所以继续修改代码让我的引脚接led亮起来
最后找到了led灯原来pin13是板子上做好的标记为pc13的灯。
#include stm32f10x.h
#include stm32f10x_gpio.h
#include stdio.h//C:\Users\Administrator\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\StdPeriph_Driver\inc
void delay(uint32_t count)
{for (; count ! 0; count--);
}int main(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 启用GPIO端口A的时钟GPIO_InitStructure.GPIO_Pin GPIO_Pin_13;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOC, GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin GPIO_Pin_5; // 设置要控制的引脚为PA5GPIO_Init(GPIOA, GPIO_InitStructure); // 初始化GPIO端口A的配置while (1){GPIO_SetBits(GPIOC, GPIO_Pin_13);GPIO_SetBits(GPIOA, GPIO_Pin_5); // 设置PA5引脚为高电平delay(0xFFFFF);GPIO_ResetBits(GPIOC, GPIO_Pin_13); GPIO_ResetBits(GPIOA, GPIO_Pin_5); // 设置PA5引脚为低电平delay(0xFFFFF);}}这个是让5脚和13脚同时闪烁发现一个标记C13的脚亮了。
所以就算成功哦了吧至于为啥是c13对应pin5鬼知道买板子的资料网盘都提示文件已经过期就不去琢磨了反正就那么点口一个个试呗或者哪天发现对应图了再贴出来再说一个厂家一个对应关系也没必要去认真琢磨。
ok就这样了花了我快一周目标达成。