首先感谢社区举办的双11活动,在活动的最后两天卡点抢到了NUCLEO-STM32G431这块板子,感谢日天的及时发货。
先晒晒开发板的美照吧!
对我来说,这块板子最大的亮点要数板载的ST-LINK V3了。相比ST-LINK V2.x版本最大时钟速度和虚拟串口速度都有了很大的提升。
下来使用STM32CubeMX和Keil进行一个简单的测试。
首先配置一下管脚,这里要注意开发板默认焊接的外部晶振是24MHz的。
这里为了接线的方便都配置在PA这一组里。
实验的对象是一款10位5*5的点阵SCD55100,使用4个IO口就可以控制,时序也比较简单。
示例代码是先固定显示两串字符然后循环显示一串随机数:
int main(void)
{
/* USER CODE BEGIN 1 */
/* 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_LPUART1_UART_Init();
/* USER CODE BEGIN 2 */
HAL_GPIO_WritePin(GPIOA, RST_Pin, GPIO_PIN_RESET);
HAL_Delay(10);
HAL_GPIO_WritePin(GPIOA, RST_Pin, GPIO_PIN_SET);
WriteDat(0xC0); //Software clear
/*
F0 100%
F1 53%
F2 40%
F3 27%
F4 20%
F5 13%
F6 6.6%
*/
WriteDat(0xF1); //Display brightness(F0~F6)
// WriteDat(0xFF); //Power down
WriteString("STM32G431");
HAL_Delay(2000);
WriteString("LOVE STM32");
HAL_Delay(2000);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/******************************************
必须要每次刷新种子。每次的随机数才会不一样
srand() rand() 在#include "stdlib.h"
******************************************/
srand(counter); //种子值
p = rand() % 10000000000; //生成随机整数
printf("%d\r\n", p);
WriteString(" ");
sprintf(str, "%d", p);
WriteString(str);
counter++;
HAL_GPIO_WritePin(GPIOA, LED_Pin, GPIO_PIN_SET);
HAL_Delay(300);
HAL_GPIO_WritePin(GPIOA, LED_Pin, GPIO_PIN_RESET);
HAL_Delay(300);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
后边有空了再评测一下其他的内容。 |
这个点阵挺好看的
6666666666666666