STMS 系列点亮第一个灯 GPIO输出 (IDEAT科技)
前面的我们已经把STVD软件安装和库环境搭建的 安装好了!现在我们来写一个GPIO输出的代码!!
还是一步一步的来!首先我们还是先创建一个工程!!这边我还是放个传送门把!! 帮助大家快速搭建!!节约时间
**传送门:链接:https://pan.baidu.com/s/1G9Bi9Rq_-JDwoZv0iVXv0g
提取码:ye62 **
大家拿着直接解压,然后打开工程文件 即可!! 在 02 → Software 里面 如果有报出下面这个错误别急!!这是放的库文件地址不一样 软件没用找到库文件 就报这个!! 你点击是删除文件就行了 然后把自己的库文件加进去
库文件在解压包USERDATA 里面 还是右键这里添加
我们添加这几个文件 就行了
GPIO.C和CLK.C,和他们的.H文件
导入这几个文件后就编译一下 大家可以看我下面的截图
然后我们就开始写代码了!!!
API可以参考一下小青蛙:
链接:https://pan.baidu.com/s/1R_j0ZXGBr_aKoADPQjJnrA
提取码:6fd8
继续然后我在主函数里面我们先来配置时钟 我这边用的内部16M高速晶振HSI 1分频
不清楚的朋友可以去查看对应芯片的数据数据手册!!一般百度一下就有
大家可以参考小青蛙里面的API!!!
//-------------------- 初始化系统时钟---------------------------
void DriveM_InitSystemclock(void)
{
CLK_DeInit(); // 重置时钟恢复默认值
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); // 配置内部高速时钟HSI分频 1分频
CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1); // 配置系统时钟分频
CLK_HSICmd(ENABLE); // 打开内部高速时钟 HSI
}
时钟配置完成后!!咱们现在来配置端口!! 毕竟要点亮灯
下面开始设置端口了!! 下面是我们要输出的引脚
如果用小青蛙可以直接配置文件!!! 这里我们选择推挽输出就是高低电平 ,高速低速 点灯影响不大!!
//-------------------- 配置端口 ---------------------------------
void DriveM_InitGpio(void)
{
GPIO_DeInit(GPIOC); //重置端口GPIOC (包括PC0~7)
GPIO_Init(GPIOC, GPIO_PIN_1, GPIO_MODE_OUT_PP_HIGH_SLOW); //配置端口GPIOC PC1,低速推挽输出
}
这样基本的端口配置就完成了!! 是不是感觉比较简单!! 下面我们来让让这个灯点亮 并且一闪一闪的
我们在主函数里面 就是main()里面添加以下代码!!
//-------------------- 主函数代码 --------------------------------
void main()
{
uint16_t num =1000000; //创建一个局部变量 这个值稍微设置大一点 uint16_t 大家可以通俗点理解成int
//执行函数
DriveM_InitSystemclock();
DriveM_InitGpio();
//-----------------------
while(num--) //这里做一个死循环让他一直跑 跑的时候让那个 num变量每次减少1
{
if(num<=1) //判断条件如果这个num小于等于1了就进入条件
{
GPIO_WriteReverse(GPIOC, GPIO_PIN_1); //让单片机取反输出电平(单片机默认引脚输出是高电平 理想状态是 0V和3.3V互换)
num = 1000000; //又重新让num这个值等于原始值这样他就一直跑
}
else
{}
}
}
这样基本上就OK了 接下来我们点击编译代码!!
然后大家就可以下载程序进入单片机了!!
下载之前看看有没有设置 就像这样!!
有些小伙伴没有驱动的我这里给个传送门!!!(仅限ST-LINK)
链接:https://pan.baidu.com/s/1x_lR-AQuxwqgKNq2oHI7Lg
提取码:0qeh
点击Debug!!!
然后界面就这个样子的!!!然后点击运行代码
然后单片机就亮灯了!! 亮灯了!!!亮灯了!!灯了!!了!!!!
闪烁频率有点快!!我没有分频主要是。
具体功能就就实现了,然后呢大家可以加入我们的交流群!!
764284134
有提供开发版!这是别人的开发板我们的自己还在做(先勉强用着吧)!!!
有需要开发板就便宜点!两三顿小面。。。。。。主要能跟着学习就行 基本功能都能测试到!!! 后面我会做一些项目(远程wifi控制,循迹/平衡小车之类的)!!! 喜欢的小伙伴可以跟着学,资料在群里面都可以找到!!