使用编译器环境:KEIL5.38A 一根MicUSB线。
实验目标:Raspberry Pi Pico板载的LED灯,以100ms的时间闪烁。
一:keil5软件增加编译环境
目的:使用mdk(keil5)编译环境,调试Raspberry Pi Pico开发板
1.1 安装pack支持包
1.2 正常安装支持包后,可以在软件代码中的device中看到下图所示的代码
1.1 打开软件代码,编译一下:效果如下:
可以看到软件代码可以正常编译通过,警告暂时不需要考虑。
二:硬件部分
板载的LED灯引脚连接至GPIO25,编译驱动Raspberry Pi Pico上的GPIO引脚,从而点亮LED灯的闪烁,当引脚置高时,可以点亮LED灯,当引脚置低时,熄灭LED灯。
三:软件部分:
3.1 利用GPIO,延时函数操作LED闪烁
void LED_init(){ gpio_init(PICO_LED_PIN);gpio_set_dir(PICO_LED_PIN, GPIO_OUT); } void LED_ON(){gpio_put(PICO_LED_PIN, 0);} void LED_OFF(){gpio_put(PICO_LED_PIN, 1);}
主程序
while (true) { LED_ON(); MY_DEV_Delay_ms(100); LED_OFF(); MY_DEV_Delay_ms(100); }
实验效果如下:
3.2 利用PWN输出方式控制LED的亮度
脉冲调制技术:脉宽调制(Pulse-Width Modulation,PWM)是利用微处理器的数字输出,来对模拟电路进行控制的一种非常有效的技术,通过对一系列脉冲的宽度进行调制,来等效的获得所需要的波形(含形状和幅值),即通过改变导通时间占总时间的比例,也就是占空比,达到调整电压和频率的目的。
软件调试步骤:
步骤1:配置IO口的工作模式
步骤2:配置定时器的模式,设置成PWM功能
步骤3:设置分频器和比较值的初值。
步骤4:利用系统延时延时Delay(当然做项目时候,不要使用delay延时函数)
软件代码如下:
PWM参数初始化:
gpio_set_function(PICO_LED_PIN, GPIO_FUNC_PWM); my_slice_num = pwm_gpio_to_slice_num(PICO_LED_PIN); pwm_set_wrap(my_slice_num, 1000); pwm_set_chan_level(my_slice_num, PWM_CHAN_B, 1); pwm_set_clkdiv(my_slice_num,50); pwm_set_enabled(my_slice_num, true);
设置PWM的占空比:
void my_SET_PWM(uint16_t Value) { if(Value<0 || Value >1000){ pwm_set_chan_level(my_slice_num, PWM_CHAN_B, 500); }else { pwm_set_chan_level(my_slice_num, PWM_CHAN_B, Value); } }
主函数
my_pwm_init(); while(1) { my_SET_PWM(value); MY_DEV_Delay_ms(500); value = value+100 ; if(value>=1000) value = 100 ; }
四 程序下载指导
4.1 keil5编译完成后,生成的下载文件 uf2
下载时候 我们需要按住boot按键后,将USB口插入到电脑中,当电脑识别到127M的RPI-RP2 U盘时,才可以松开boot按键引脚;
将下载文件下载到U盘里面即可。
下载完成后,U盘 盘符消失,程序自动运行。
基本的程序下载就是这样,学习到了使用mdk开发Raspberry Pi Pico的基本操作,例如GPIO操作和PWM输出功能,在接下来学习驱动墨水屏的过程。