STM32F1单片机参考文档
生活随笔
收集整理的這篇文章主要介紹了
STM32F1单片机参考文档
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一.基礎部分
- 1.各軟件基本操作和配置
- 1.1cubemx
- 1.2keil5
- 1.3FluMcu
- 1.4XCOM
- 2.點燈LED
- 3.按鍵KEY
- 4.串口通信USART
- 5.ADC(模數轉換)
- 6.pwm波
- 7.可調pwm占空比及頻率
一.基礎部分
1.各軟件基本操作和配置
1.1cubemx
1.2keil5
1.3FluMcu
單片機接線:數據線連接單片機背面ISP對應插口
1.4XCOM
2.點燈LED
cubemx:
代碼:
/*************變量區**********************************/ int time_led=0; /*************主循環區********************************/ while(1){//PA8置低電平-->燈1亮HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_RESET);//PD2置低電平-->燈2亮HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);//反轉電平-->低變高,高變低-->亮變滅,滅變亮HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8);//實例:周期亮滅if(uwTick-time_led>500)//500-->每500ms進入一次if語句{HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8);//PA8電平狀態反轉-->亮變滅,滅變亮time_led=uwTick;//更新time_led} }3.按鍵KEY
cubemx:
代碼:
/**********變量區**********************/ int time_key=0; /**********主循環區********************/ while(1) {HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_15);//讀取PA15電平狀態,為高時返回GPIO_PIN_SET,低時返回GPIO_PIN_RESET//實例:按鍵按下燈亮,再按燈滅...if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_15)==GPIO_PIN_RESET)//讀取到PA15為低電平-->按鍵為按下狀態{if(uwTick-time_key>50){HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8);}time_key=uwTick;//更新time_key} }4.串口通信USART
cubemx:
代碼:
/****************頭文件區*******************/ #include <stdio.h> /****************變量區*********************/ uint8_t Uart_Rx = '0'; /****************子函數區******************/ int fputc(int ch, FILE *f)//重定向-->之后可以使用printf函數直接輸出數據 {HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);return ch; } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//串口接收回調函數-->當單片機接收到數據時,會執行此函數體內代碼 { //這里寫要執行的代碼//實例:接收到數據時發送"接收成功"printf("接收成功"); } /***********主循環區*******************/ while(1) {HAL_UART_Receive_IT(&huart1, &Uart_Rx, 1);//中斷接收數據,接收到的數據會存放在Uart_Rx中printf("123456");//這里寫想輸出的內容}5.ADC(模數轉換)
cubemx:
代碼:
/*****************變量區*******************/ float ad_value; /******************主循環區****************/ while(1){HAL_ADC_Start(&hadc1);//開啟ADC功能,使用adc1通道ad_value=HAL_ADC_GetValue(&hadc1);//ad_value為電壓采集值-->一般使用值3300/4096*ad_value作為實際電壓值}AD_Value*3300.0/4096解讀
單片機讀取的電壓值為十二位二進制數組成,其最大值為111111111111,即十進制的4095.
而可讀取的電壓值范圍為0-3.3v,所以把3.3v分為4096份,再乘上讀取到的數值,即為電壓值.
6.pwm波
cubemx:
代碼:
/****************初始化區***********************/ HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);pwm頻率占空比解讀:
PWM的頻率 = 時鐘頻率 / (CCR + 1) *(ARR + 1));
如上圖72M/((71+1)*(999+1))=1000,故頻率為1000hz
pulse:pulse/ARR=占空比
如上圖500/1000=50%
7.可調pwm占空比及頻率
代碼:
/***************變量區**********************/ float x = 2000;//頻率設置 float y = 0.5;//占空比設置 /**************主循環區************************/ TIM1->CCR1 = (1000000/x)*y; TIM1->ARR = (100000/x)-1;總結
以上是生活随笔為你收集整理的STM32F1单片机参考文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android动画框架(二)----属性
- 下一篇: 访客出入登记小程序软件系统保安登记