欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4525|回復: 2
收起左側

使用STLINK進行程序調試

[復制鏈接]
ID:886538 發表于 2021-2-25 23:34 | 顯示全部樓層 |閱讀模式
用STLINK來調試可以真實訪問查看寄存器的變化,下面就以串口輸出內容到上位機顯示為例,講述一下如何用STLINK來調試程序。
1.安裝STLINK驅動程序。因本例程需要用到串口將內容輸出到上位機,我的板子采用芯片CH340將USB轉串口,所以要安裝CH340 驅動。
2.  建立工程,將如圖文件包含到工程里。 20200531090752913.png
3.Options for Target 選項卡在 Debug 欄選擇仿真工為具 Use:ST-Link Debugger,如圖依次 成4個步驟
20200531091535621.png

然后點擊Settting進行STLINK參數設置,我選用SW模式,JTAG占用比較多的I/O,容易影響其他外設的使用,速率不要選擇太大,否則會出現問題。
20200531092257792.png

接下來我們還需要在 Utilities 選項卡里面設置下載時的目標編程器
20200531092942693.png

我們直接勾選 Use Debug Driver,即和調試一樣,選擇 ST LINK 來給目標器件的 FLASH 編程,然后點擊 Settings 按鈕,進入 FLASH 燒錄設置
20200531092942693 (1).png
設置好后編寫程序,將硬件連接,下載后就點擊Debug后就可以實時跟蹤程序,很方便的找到程序的bug。
  1.          void GPIO_Configuration(void)
  2. {        
  3.          GPIO_InitTypeDef GPIO_InitStruct;
  4.          GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
  5.          GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;
  6.          GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
  7.          GPIO_Init(GPIOA, &GPIO_InitStruct);
  8.          
  9.          GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
  10.          GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
  11.          GPIO_Init(GPIOA, &GPIO_InitStruct);
  12. }

  13. void USART_Configuration(void)
  14. {
  15.         USART_InitTypeDef USART_InitStruct;
  16.         USART_InitStruct.USART_BaudRate=9600;
  17.         USART_InitStruct.USART_WordLength=USART_WordLength_8b ;
  18.         USART_InitStruct.USART_StopBits=USART_StopBits_1;
  19.         USART_InitStruct.USART_Parity=USART_Parity_No;
  20.         USART_InitStruct.USART_Mode=USART_Mode_Tx |USART_Mode_Rx;
  21.         USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
  22.         
  23.         USART_Init(USART1,&USART_InitStruct);
  24.         
  25.         USART_Cmd(USART1, ENABLE);

  26.         
  27. }
  28. void RCC_Configuration(void)
  29. {
  30.          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
  31.      RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);  
  32.          
  33. }
  34. void Delay_Ms(u16 time)  
  35.         u16 i,j;
  36.         for(i=0;i<time;i++)
  37.                   for(j=10000;j>0;j--);
  38. }
  39. int main(void)
  40. {        
  41.    u8 i,data;
  42.    RCC_Configuration();
  43.    GPIO_Configuration();
  44.    USART_Configuration();
  45.    data='A';
  46.          for(i=0;i<30;i++)
  47.          {
  48.                  while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
  49.                  USART_SendData(USART1,data);
  50.                  data++;
  51.                  while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
  52.          }

  53.          
  54.          return(0);

  55. }
復制代碼

20200531092942693.png

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:830831 發表于 2021-2-26 09:48 | 顯示全部樓層
感覺 bascom AVR 那樣的語言才是單片機高級語言的出路,這寄存器級的C語言編程也是夠了
回復

使用道具 舉報

ID:517951 發表于 2021-2-26 11:08 | 顯示全部樓層
很詳細的指導, 何愁STM32不會?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表