实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出模式,采 用灌电流方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒变换一次LED颜色. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ static int led_work_status; /* USER CODE END 1 */ /* MCU Configuration----------------------…
实验原理: 通过STM32的三个GPIO驱动一个三色LED,引脚PB2接红色LED(ARM_LEDR), 引脚PA9接蓝色LED(ARM_LEDB),引脚PA10接绿色LED(ARM_LEDG),  GPIO为推 挽输出模式,采用灌电流方式与LED连接,通过拉高拉低GPIO电平,从而控制LED亮灭. 实验现象: 该实验实现跑马灯功能,红.绿.蓝三色LED每隔500ms循环点亮. 源代码下载链接: 链接:http://pan.baidu.com/s/1eSu18A2 密码:ud87 核心源码: i…
实验原理: 按键的一端与STM32 PB9相连,另外一端接地,且PB9外接一个1K电阻大小的上拉电阻, 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按键按下时,PB9直接被按键短接到GND,呈低电平,因此判断PB9的电平变化可得到按键状态. 实验现象: 该按键每按下一次,LED改变一次状态. 源代码下载链接: 链接:http://pan.baidu.com/s/1mhPhFfy 密码:rrgr 核心源码: int main(void) { /*…
实验现象: 1.先烧写FPGA程序,再烧写ARM程序,ARM程序烧写完毕后即开始读写RAM测试,测试成功,绿色ARM·LED亮,测试失败,红色ARM·LED闪烁. 2.测试成功,ARM通过映射寄存器来控制FPGA三色LED循环点亮. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i; /* USER CODE END 1 */ /* MCU Configuration-------------------------------------…
实验现象及操作说明: 1.将升级文件拷入U盘system文件夹中,通过U盘转接线将U盘连接到iCore4 USB OTG接口. 2.烧写程序成功,绿色ARM·LED灯点亮,三色FPGA·LED灯循环点亮,烧写失败,如果挂载SD卡失败,红灯快闪,如果打开文件失败,蓝灯快闪,读取文件指针移动失败,白灯点亮,升级失败,红灯慢闪. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configurati…
实验现象及操作说明: 1.烧写程序成功,绿色ARM·LED灯点亮,三色FPGA·LED灯循环点亮,烧写失败,如果挂载SD卡失败,红灯快闪,如果打开文件失败,蓝灯快闪,读取文件指针移动失败,白灯点亮,升级失败,红灯慢闪. 2.上电时按着ARM·KEY,进入虚拟U盘模式,计算机将出现一个磁盘,可将升级文件拷入SD卡. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i; int k; unsigned int counter; unsigned…
实验原理: 通过STM32的三个GPIO驱动一个三色LED,引脚PF3接蓝色LED(ARM_LEDB), 引脚PF4接绿色LED(ARM_LEDG),引脚PF5接红色LED(ARM_LEDR),  GPIO为推 挽输出模式,采用灌电流方式与LED连接,通过拉高拉低GPIO电平,从而控制LED亮灭. 实验现象: 该实验实现跑马灯功能,红.绿.蓝三色LED循环点亮. 源代码下载链接: 链接:http://pan.baidu.com/s/1jI9ky9o 密码:8nji…
实验原理: STM32内部包含独立看门狗,通过看门狗可以监控程序远行,程序运行错误时, 未在规定时间内喂狗,自动复位ARM.本实验通过按键按下,停止喂狗,制造程序运行 错误,从而产生复位. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Re…
实验原理: STM32内部包含窗口看门狗,通过看门狗可以监控程序运行,程序运行错误时,未在 规定时间喂狗(提前或超时),自动复位ARM,本实验通过按键按下,停止喂狗,从而产 生复位. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset…
实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按键按下时,PB9直接被按键短接到GND,呈低电平,因此PB9的电平变化产生下降 沿,从而进入中断函数,进入中断回调. 实验现象: 按键被按下一次,切换一个LED的状态. 源代码下载链接: 链接:http://pan.baidu.com/s/1hrCzb2s 密码:21yp 核心代码: int mai…
实验指导书及代码包下载: http://pan.baidu.com/s/1o6w6Xnk iCore3 购买链接: https://item.taobao.com/item.htm?id=524229438677…
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升级,升级文件.bin文件存入在SD卡中 BIN升级文件产生方法: 1.编译APP工程,产生.hex文件. 2.将.hex文件拖至HEX2BIN.EXE即可产生.bin文件. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int k; int cnt;…
实验现象: 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i,j; int res; ]; ; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Sy…
实验现象: 上电即开始读写SDRAM测试,测试过程中,蓝色LED点亮,如果出现错误,红色LED闪烁,测试成功,绿色LED点亮. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i,j; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals…
实验现象: 用电压表测量PA4引脚有2.0V直流电压输出. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the S…
实验现象: 核心代码: int main(void) { led.initialize(); //LED³õʼ»¯ key.initialize(); if(ARM_KEY_STATE == KEY_UP){ //°´¼üËÉ¿ª×´Ì¬Ö±½ÓÌøÏòÓ¦ÓóÌÐò goto start; } system_clock.initialize(); //ϵͳʱÖÓ³õʼ»¯ delay.initialize(); //ÑÓʱ³õʼ»¯ adc.initialize(); //AD…
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升级,升级文件.bin文件存入在U盘中 BIN升级文件产生方法: 1.编译APP工程,产生.hex文件. 2.将.hex文件拖至HEX2BIN.EXE即可产生.bin文件. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END…
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编译APP工程,产生.hex文件. 2.将.hex文件拖至HEX2BIN.EXE即可产生.bin文件. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ ; /* USER CODE END 1 */ /* MCU Configuration--------…
实验现象: 核心代码: int main(void) { GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOI_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); HAL_GPIO_WritePin(GPIOH, GPIO_PIN_6|GPIO_PIN_8, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, GPIO_PIN_SET); /*Configur…
实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.initialize(); my_malloc.initialize(SRAMIN); usart6.initialize(); usart6.printf("\033[1;32;40m"); usart6.printf("\r\nHello, I am iCore4!\r\n\r\…
实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.initialize(); my_malloc.initialize(SRAMIN); usart6.initialize(); usart6.printf("\033[1;32;40m"); usart6.printf("\r\nHello, I am iCore4!\r\n\r\…
实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.initialize(); my_malloc.initialize(SRAMIN); usart6.initialize(); usart6.printf("\033[1;32;40m"); usart6.printf("\r\nHello, I am iCore4!\r\n\r\…
实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.initialize(); my_malloc.initialize(SRAMIN); usart6.initialize(); usart6.printf("\033[1;32;40m"); usart6.printf("\r\nHello, I am iCore4!\r\n\r\…
实验原理: 开发板上自带一片CH340芯片,完成本实验电脑需要安装CH340驱动, CH340的TXD连接STM32的GPIO(PXC7),CH340的RXD连接STM32的 GPIO(PC6),通过串口发送命令控制LED的亮灭.串口命令如下: LED_RED_ON\CR\LF---------------------LED红灯亮LED_RED_OFF\CR\LF-------------------LED红灯灭 LED_BLUE_ON\CR\LF-------------------LED蓝灯…
实验原理: STM32的定时器有PWM功能,iCore4的蓝色LED连接在定时器的输出接口上, 可以通过定时器的PWM输出控制LED的亮度,从而实验呼吸灯的功能. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ ; float temp = 0.0; ; /* USER CODE END 1 */ /* MCU Configuration---------------------------------------------------------…
实验原理: STM32内部集成三个12位ADC,iCore1S的所有电源经过电阻分压或者直接 接入STM32的ADC的输出通道内,输入电流经过高端电流检测芯片ZXCT1009F 输入到ADC的输入通道内,从而实现电源监控功能. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------…
实验现象: 核心代码: int main(void) { /* USER CODE BEGIN 1 */ RTC_TimeTypeDef sTime; RTC_DateTypeDef sDate; ; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the F…
实验原理: DAM(直接存储器访问)传输不需要占用CPU,可以在存储器至存储器实现高速的数据 传输.本实验采用DAM2控制器的数据流0,选用通道0进行数据传输.通过LED的颜色来 判断传输是否成功. 实验现象: 实验成功蓝色LED灯闪烁,实验失败红色LED灯闪烁. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i; /* USER CODE END 1 */ /* MCU Configuration---------------------…
实验原理: 通过STM32的三个GPIO口来驱动LED灯的三个通道,设定GPIO为推挽输出模式,采 用灌电流的方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过通用定时器TIM3 实现500ms定时,每500ms变换一次LED颜色. 核心代码: void MX_TIM3_Init(void) { TIM_ClockConfigTypeDef sClockSourceConfig; TIM_MasterConfigTypeDef sMasterConfig; htim3.Instanc…
实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); usart6.initialize(); usart6.printf("\x0c"); usart6.printf("\033[1;32;40m"); usart6.printf("Hello, I am iCore4!\r\n\r\n\r\n"); ){ usart6.printf("SD…