搭建开发平台:安装并破解Keil
运行mdk472的可执行文件,按向导的步骤安装。
根据自己的需要选择安装路径
此处注意邮箱格式要合理
此处默认,NEXT
此处的两个选项可选可不选
安装完毕以后运行Keil,在File一栏查看License Management,将右上角的CID复制一下。
运行KEIL_Lic的可执行文件破解Keil,将刚才复制的CID粘贴在相应位置,目标Target选择ARM,点击Generate获得注册码并将其复制。
再回到Keil,打开License Management,将复制的注册码粘贴在最后的LIC一栏,点击Add LIC,若最下面的方框内出现LIC Added Sucessfully表示破解成功。
值得一提的是,Win8上要破解Keil,必须以
管理员身份运行。本人亲自测验。
作业四: 学号为偶数的同学让LED闪烁呈Z字形;RGB闪烁6彩,不含白光。
视频地址:http://player.youku.com/player.php/sid/XODA4MDI4NDk2/v.swf
#include "stm32f10x.h" #include "stm32_eval.h" GPIO_InitTypeDef GPIO_InitStructure; /** * @brief Main program. * @param None * @retval None */ void RCC_Configuration(void)//时钟配置 { RCC_DeInit(); RCC_HSICmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI); RCC_HSEConfig(RCC_HSE_OFF); RCC_LSEConfig(RCC_LSE_OFF); RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); // 72HMz RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); RCC_ADCCLKConfig(RCC_PCLK2_Div4); RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource() != 0x08); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_ResetBits(GPIOD,GPIO_Pin_2);//关蜂鸣器 } /*GPIO初始化*/ void GPIO_INIT() { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA, ENABLE);//使能PC,PA的时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;//要使用PC0到PC7 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化PC GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;//要使用PA1,PA2,PA3 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化PA } /*延时函数 微秒*/ void delay_us(u32 n) { u8 j; while(n--) for(j=0;j<10;j++); } /*延时函数 毫秒*/ void delay_ms(u32 n) { while(n--) delay_us(1000); } /*点亮LED与RGB的函数*/ void func(void) { GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);//RGB全部熄灭 while(1) { GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);//LED全部熄灭 delay_ms(100); GPIO_ResetBits(GPIOC,GPIO_Pin_3);//点亮D4 delay_ms(100); GPIO_SetBits(GPIOC,GPIO_Pin_3);//熄灭D4 GPIO_ResetBits(GPIOC,GPIO_Pin_2);//点亮D3 delay_ms(100); GPIO_SetBits(GPIOC,GPIO_Pin_2);//熄灭D3 GPIO_ResetBits(GPIOC,GPIO_Pin_1);//点亮D2 delay_ms(100); GPIO_SetBits(GPIOC,GPIO_Pin_1);//熄灭D2 GPIO_ResetBits(GPIOC,GPIO_Pin_0);//点亮D1 delay_ms(100); GPIO_SetBits(GPIOC,GPIO_Pin_0);//熄灭D1 GPIO_ResetBits(GPIOC,GPIO_Pin_7);//点亮D8 delay_ms(100); GPIO_SetBits(GPIOC,GPIO_Pin_7);//熄灭D8 GPIO_ResetBits(GPIOC,GPIO_Pin_6);//点亮D7 delay_ms(100); GPIO_SetBits(GPIOC,GPIO_Pin_6);//熄灭D7 GPIO_ResetBits(GPIOC,GPIO_Pin_5);//点亮D6 delay_ms(100); GPIO_SetBits(GPIOC,GPIO_Pin_5);//熄灭D6 GPIO_ResetBits(GPIOC,GPIO_Pin_4);//点亮D5 delay_ms(100); GPIO_SetBits(GPIOC,GPIO_Pin_4);//熄灭D5 /*RGB蓝红绿紫靛黄*/ GPIO_ResetBits(GPIOA,GPIO_Pin_1);//蓝 delay_ms(200); GPIO_SetBits(GPIOA,GPIO_Pin_1); GPIO_ResetBits(GPIOA,GPIO_Pin_2);//红 delay_ms(200); GPIO_SetBits(GPIOA,GPIO_Pin_2); GPIO_ResetBits(GPIOA,GPIO_Pin_3);//绿 delay_ms(200); GPIO_SetBits(GPIOA,GPIO_Pin_3); GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);//紫 delay_ms(200); GPIO_SetBits(GPIOA,GPIO_Pin_2); GPIO_ResetBits(GPIOA,GPIO_Pin_3);//靛 delay_ms(200); GPIO_SetBits(GPIOA,GPIO_Pin_1); GPIO_ResetBits(GPIOA,GPIO_Pin_2);//黄 delay_ms(200); GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);//RGB全部熄灭 } } /** * @brief Main program. * @param None * @retval None */ int main(void) { RCC_Configuration(); GPIO_INIT(); func(); }
代码应该还可以更精简。最近作业多,今天先做到这里,等我想到好方法再发帖~~
对了,还有一件事,童鞋们不要盲目抄袭以上代码哟~
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |