代码原本的想法是,在发送完BUFFER里面的数据之后稍作延时delay_us(2),就拉高SPI Enable(对应DSP_CS引脚)。代码用在STM32F103CBT6上没有问题,但是用在GD32F103CBT6上,意想不到的现象出现了,此时程序好像不再是顺序执行了,也就是发送完了数据之后,再执行IO拉高操作,而是数据发送和IO控制变成了并行操作,数据发送和...
Delay_Us(1);} if(!ack){ SDA_OUT();//SDA线输出模式 IIC_SDA_H;//时钟脉冲的高电平期间保持...
vu32 sys_tick_100us=0;void TIM3_Int_Init(u16 arr,u16 psc){ timer_parameter_struct modbus_...
// 生成START条件 I2C_GenerateSTART(I2C1, ENABLE); // 等待START条件生成 while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); // 发送EEPROM的I2C地址,选择写模式 I2C_Send7bitAddress(I2C1, EEPROM_ADDR, I2C_Direction_Transmitter); // 等待地址发送完成 while (!I2C_CheckEvent(I2C1, I2C...
2:{comSendBuf(COM2, _ucaBuf, _usLen);}break;case 3:{comSendBuf(COM3, _ucaBuf, _usLen...
(LED1); delay_1ms(250); gd_eval_led_toggle(LED1); delay_1ms(250); } } /*单击按键事件*/ void BTN1_SINGLE_Click_Handler(void *btn){ } /*双击按键事件*/ void BTN1_DOUBLE_Click_Handler(void *btn){ } /*达到长按时间阈值时触发一次*/ void BTN1_LONG_PRESS_START_Handler(void *btn...
VOIDOS_TASK_TaskDelay(INU16ms); 宏定义 define 必须大写 typedef 可以小写 例如, #defineOS_TASK_SWITCH_INTERVAL10/* 单位ms */typedefU32StackSize_t;/* 仅用于堆栈 */ 类型定义 统一使用下面的,编程最关心符号位和位宽 #defineU8unsigned char#defineS8char#defineU16unsigned short#defineS16short#define...
延时时间固定5us,这样代码会简单很多,原因如“I2C总线时序要求”一节中,时序基本都要求了最小时间间隔5us足以,有两项有最大时间要求,却不影响我们编码。#define I2C_Set1(i2c) GPIO_SetBits(i2c);I2C_Delay(5); #define I2C_Set0(i2c) GPIO_ResetBits(i2c);I2C_Delay(5); #define I2C_Get(i2c) GPIO...
32-位 Cortex?-M3 单⽚机GD32F103x? 系列 1.IDE环境配置 (4)1.1MDK环境的配置 (4)1.2 IAR环境的配置 (5)2.软件移植注意事项 (8)2.1系统⽅⾯的注意事项 (8)2.1.1 HSE相关内容修改 (8)2.1.2 代码执⾏速度⽅⾯的修改 (8)2.1.3 BOOT管脚注意事项 (9)2.1.4 低功耗注意事项 (9...
#include"gd32f10x.h"#include"systick.h"intmain(void){systick_config();//系统主频108MHZ,采用外部晶振,由两个宏决定(__SYSTEM_CLOCK_108M_PLL_HXTAL与HXTAL_VALUE)LED_GPIO_Init();// LED灯模块初始化while(1){LED_ON;delay_1ms(500);LED_OFF;delay_1us(500000);}} ...