这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » STM32F410RB 板卡驱动 ST7565 实现 跳动的

共3条 1/1 1 跳转至

STM32F410RB 板卡驱动 ST7565 实现 跳动的

菜鸟
2018-11-08 14:43:31     打赏

工程描述:使用STM32F410MCU,通过SPI控制MAPS-DOCK上面LCD屏幕控制显示图片来实现“跳动的心”。
程序细节:
    1.创建工程,使用官方HAL库配置SPI2生成简单的程序,配置屏幕CS,CD,nRST引脚。
    2.跳线实现STM32F4demo板和MAPS-DOCK上LCD的控制

QQ图片20181108104938.jpgLCD屏            STM32F4
MOSI             SPI2_MOSI
SCLK               SPI2_SCLK
CD                   PC8
nRST                PC10
CS                    PC9
3.绘制LCD屏显示图片,生成数组。

QQ图片20181108105839.png4.主程序加载数组交替显示来实现跳动的心。由于麻烦这里贴两张图片不拍视频了。初步实现外表看来是跳动的心,后面可添加声音,心跳采集来更新心跳速率,以及开一个小窗口来屏幕显示心跳值。

5. 遇到的问题 :
      LCD屏幕的 RST管脚,在测试过程中 接触不好,出现了 不显示的问题,该管脚 与 MAPS-DOCK板的 仿真芯片 复位脚和 LCD复位脚  服用,后来
接到 STM32F410RB 板子的 RSET 脚,就OK了。

SPI配置
void MX_SPI2_Init(void)
{

  hspi2.Instance = SPI2;
  hspi2.Init.Mode = SPI_MODE_MASTER;
  hspi2.Init.Direction = SPI_DIRECTION_2LINES;
  hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi2.Init.CLKPolarity = SPI_POLARITY_HIGH;
  hspi2.Init.CLKPhase = SPI_PHASE_2EDGE;
  hspi2.Init.NSS = SPI_NSS_SOFT;
  hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
  hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi2.Init.CRCPolynomial = 10;
 
  if (HAL_SPI_Init(&hspi2) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

}

void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
{

  GPIO_InitTypeDef GPIO_InitStruct;
  if(spiHandle->Instance==SPI2)
  {
  /* USER CODE BEGIN SPI2_MspInit 0 */

  /* USER CODE END SPI2_MspInit 0 */
    /* SPI2 clock enable */
    __HAL_RCC_SPI2_CLK_ENABLE();
 
    /**SPI2 GPIO Configuration   
    PC2     ------> SPI2_MISO
    PC3     ------> SPI2_MOSI
    PB10     ------> SPI2_SCK
    PB12     ------> SPI2_NSS
    */
    GPIO_InitStruct.Pin = GPIO_PIN_3;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

  GPIO_InitStruct.Pin = GPIO_PIN_2;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  
    GPIO_InitStruct.Pin = GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);


    GPIO_InitStruct.Pin = GPIO_PIN_12;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  /* USER CODE BEGIN SPI2_MspInit 1 */

  /* USER CODE END SPI2_MspInit 1 */
  }
}

int main(void)
{
 
  /* USER CODE BEGIN 1 */
 uint16_t  ctemp = 1000;
  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_USART2_UART_Init();
  MX_SPI2_Init();
  MX_ADC1_Init();
  MX_I2C1_Init();
  MX_FMPI2C1_Init();
  MX_USART1_UART_Init();
  MX_TIM5_Init();
  MX_TIM9_Init();
  MX_RTC_Init();
  LCD_Initialize();
  LCD_Power_On();
  /* USER CODE BEGIN 2 */
 
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
 LCD_FillAll((unsigned char *)nBitmapDot);
 HAL_Delay(ctemp);
 LCD_FillAll((unsigned char *)nBitmapDot1);
 HAL_Delay(ctemp);
  ctemp -=10;
 if(ctemp<200)
     ctemp = 1000; 
}




关键词: 结题    

高工
2018-11-08 15:04:38     打赏
2楼

没见到有心率传感器啊~


菜鸟
2018-11-08 15:37:03     打赏
3楼

视频 上传不成功。效果就是这个LCD 屏幕上的 心形 图标 跳动。


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]