页次: 1
我也是通过沁恒的接触risc-V,它给的库函数和ST的相似,多看看手册,有ST的基础 上手挺快
SPI通讯 肯定需要共地的 ,除非差分通讯方式 可以试试CAN总线
如题,最近在用GD32H7 PC2_C引脚配置成推挽输出 发现电压只有0.5V ,从数据手册也没找到相关解释,大家有遇到相似的问题么
现在做一个产品,需要电机进行快速加减速运行,加速还好,可是快速减速时,母线电压上升太高,用刹车电阻也不能完全保证电压不会搞坏开关电源,在这想问问大家有什么好的方法
void LCD_SPI_gpio_config(void)
{
gpio_mode_set(LCD_DOUT_PART, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, LCD_DOUT_PIN);
gpio_mode_set(LCD_SDA_PART, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LCD_SDA_PIN);
gpio_output_options_set(LCD_SDA_PART, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, LCD_SDA_PIN);
gpio_bit_set(LCD_SDA_PART, LCD_SDA_PIN);
gpio_mode_set(LCD_SCL_PART, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LCD_SCL_PIN);
gpio_output_options_set(LCD_SCL_PART, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, LCD_SCL_PIN);
gpio_bit_set(LCD_SCL_PART, LCD_SCL_PIN);
}
void SPI_WriteByte(uint8_t Byte)
{
uint8_t i=0;
for(i=0;i<8;i++)
{
if(Byte&0x80)
{
SPI_MOSI_SET;
}
else
{
SPI_MOSI_CLR;
}
SPI_SCLK_CLR;
SPI_SCLK_CLR;
SPI_SCLK_CLR;
SPI_SCLK_SET;
Byte<<=1;
}
}
uint8_t SPI_ReadByte(void)
{
uint8_t value=0,i=0,byte=0xFF;
for(i=0;i<8;i++)
{
value<<=1;
if(byte&0x80)
{
SPI_MOSI_SET;
}
else
{
SPI_MOSI_CLR;
}
byte<<=1;
SPI_SCLK_CLR;
LCD_delay_us(100);
if(SPI_MISO_READ)
{
value += 1;
}
SPI_SCLK_SET;
LCD_delay_us(100);
}
return value;
}
网上一搜一大把
页次: 1