套件产品介绍:
http://www.fretech.cn/teamview_6439239.html
CW32_IOT_EVA 物联网开发评估套件 资料包V6:
EVA?
使用 Keil5 这个软件,对于被 Jetbrains 全家桶惯坏了的我来说是真的难用,没有代码补全,没有自动补全括号,没有格式化… 这些都需要自己去设置
推荐一个 Keil5 代码格式化的配置教程,使用的 AStyle 格式化工具:
开发套件中是附带了一个DAP Link烧录器的,连接方式如下:
另外注意,烧录器需要在 ARM 模式下工作(蓝灯会亮),如果只亮了红灯说明需要在上电时用杜邦线短接 TX 和 GND 引脚,上电后蓝灯会亮,此时再拔掉短接用的杜邦线即可。
在 cw32f030_gpio.h
中可以看到定义:
typedef struct
{
uint32_t Pins;
uint32_t Mode;
uint32_t IT;
uint32_t Speed;
} GPIO_InitTypeDef;
下面我们看看这些变量都有哪些可选项:
Pin : 指定的引脚号,右值表达式可以是 GPIO_PIN_0 ~ GPIO_PIN_15, GPIO_PIN_All 任意相或
Mode: 引脚的模式(作为中断时还有更多的选项)
GPIO_MODE_INPUT 浮空输入模式:电平状态取决于GPIO外部的电平状态;若在GPIO外部的引脚悬空时,读取结果是不确定的。
GPIO_MODE_INPUT_PULLUP 输入上拉
GPIO_MODE_INPUT_PULLDOWN 输入下拉
GPIO_MODE_OUTPUT_PP 推挽(Pull)输出模式(输出较大电流):推拉输出 既提高电路的负载能力,又提高开关速度。
GPIO_MODE_OUTPUT_OD 开漏(Drain)输出模式(一般外接上拉电阻,如果外部不接上拉电阻只能输出低电平),可用于不同电压的系统之间的通信
GPIO_MODE_ANALOG 复用模拟输入输出模式(ADC/DAC专用)
假设有一个GPIO口接到了 一个按键的一端,在此时:
如果按键的右端接正电源,那么就要 为 GPIO_PULLDOWN(下拉模式),因为这样才能使得按键按下去的时候,能把I / O脚拉高,否则按键的功能等于摆设。
同理,如果按键另一端接地,我们就要设置为GPIO_PULLUP(上拉模式)了。
IT:中断
GPIO_IT_NONE 无中断
GPIO_IT_RISING 上升沿中断
GPIO_IT_FALLING 下降沿中断
GPIO_IT_HIGH 高电平中断
GPIO_IT_LOW 低电平中断
Speed:IO口速率(I/O口驱动电路的响应速度)
当STM32的GPIO端口设置为输出模式时,通过选择速度来选择不同的驱动电路,达到最佳的噪声控制和降低功耗的目的。(高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。)
GPIO_SPEED_LOW IO 口响应速度慢
GPIO_SPEED_HIGH IO 口响应速度快
看到 Mode 的时候你是不是懵逼了,浮空,推挽和开漏都是什么?
这里引入一个视频介绍:
总结:
CW32无刷电机训练营:
CW32生态社区事务表:
lceda上开源的CW32F030C8T6单片机核心板,设计为了Pin对Pin替换STM32F103C8T6核心板:
介绍视频: