你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32G030C8T6点亮LED程序V0.1(三)

[复制链接]
STMCU小助手 发布时间:2022-10-12 16:22
学习一款芯片,首先从点亮一颗LED开始,本程序基于RIBEE_02电路开发板,点亮一颗LED灯,驱动管脚为PD0。扩展实训中增加蓝灯闪烁代码。

1.上芯片管脚图

c79aff61b39c451894c7c82812f3cdb3.png


2.配置晶振,启用内部晶振,失能外部晶振。

ffffcf44821b4ac4893477daf0720168.png

3.配置晶振,倍频与分频,外设基础时钟配置为64MHZ。

63a00206a2214e62b69b0cd997419b0e.png

3.配置GPIO PD0管脚

4e92b052a084422e8f06a98f0d23a9d5.png

4.直接上程序代码:

  1. #include "main.h"
  2. void SystemClock_Config(void);
  3. void GPIO_Init(void);
  4. int main(void)
  5. {
  6.   HAL_Init(); //HAL库初始化
  7.   SystemClock_Config();//系统时钟初始化
  8.   GPIO_Init();//外设GPIO初始
  9.   while (1)
  10.   {
  11.    HAL_GPIO_WritePin(PD0_GPIO_Port, PD0_Pin, GPIO_PIN_SET);//BLUE LED ON 蓝灯亮
  12.   }
  13. }
  14. void SystemClock_Config(void)
  15. {
  16.   RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  17.   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  18.   HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1);
  19.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  20.   RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  21.   RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1;
  22.   RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  23.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  24.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  25.   RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV1;
  26.   RCC_OscInitStruct.PLL.PLLN = 8;
  27.   RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  28.   RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
  29.   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  30.   {
  31.     Error_Handler();
  32.   }
  33.   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  34.                               |RCC_CLOCKTYPE_PCLK1;
  35.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  36.   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  37.   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;

  38.   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  39.   {
  40.     Error_Handler();
  41.   }
  42. }
  43. void GPIO_Init(void)
  44. {
  45.   GPIO_InitTypeDef GPIO_InitStruct = {0};

  46.   __HAL_RCC_GPIOA_CLK_ENABLE();
  47.   __HAL_RCC_GPIOD_CLK_ENABLE();

  48.   HAL_GPIO_WritePin(PD0_GPIO_Port, PD0_Pin, GPIO_PIN_SET);

  49.   GPIO_InitStruct.Pin = PD0_Pin;
  50.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  51.   GPIO_InitStruct.Pull = GPIO_PULLUP;
  52.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  53.   HAL_GPIO_Init(PD0_GPIO_Port, &GPIO_InitStruct);

  54. }
  55. void Error_Handler(void)
  56. {
  57. }
  58. #ifdef  USE_FULL_ASSERT
  59. void assert_failed(uint8_t *file, uint32_t line)
  60. {
  61. }
  62. #endif /* USE_FULL_ASSERT */
复制代码

编译仿真,即可点PD0处的蓝灯。

本例中需注意:在MAIN.H中宏定义    #define PD0_Pin GPIO_PIN_0
                                                            #define PD0_GPIO_Port GPIOD

5.扩展实训

   让蓝灯闪烁:

  1.     while (1)
  2.       {
  3.        //HAL_GPIO_WritePin(PD0_GPIO_Port, PD0_Pin, GPIO_PIN_SET);//BLUE LED ON 蓝灯亮
  4.         HAL_Delay(1000);
  5.         HAL_GPIO_TogglePin(PD0_GPIO_Port, PD0_Pin);//取反
  6.        }
复制代码

6.HAL库中GPIO控制:

  1. /* IO operation functions *****************************************************/
  2. GPIO_PinState   

  3. HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);  //读GPIO
  4. HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);//写
  5. HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);//取反GPIO


  6. HAL_StatusTypeDef

  7. HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);//锁住管脚电平
  8. HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);//外部中断管理函数 清外部中断
  9. HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin);//中断回调函数
  10. HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin);//中断回调函数
复制代码

————————————————
版权声明:米蜂科技

05d6fa242d1246a6b8a009e6e1736cb1.png
收藏 评论0 发布时间:2022-10-12 16:22

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版