|
用STLINK来调试可以真实访问查看寄存器的变化,下面就以串口输出内容到上位机显示为例,讲述一下如何用STLINK来调试程序。
1.安装STLINK驱动程序。因本例程需要用到串口将内容输出到上位机,我的板子采用芯片CH340将USB转串口,所以要安装CH340 驱动。
2. 建立工程,将如图文件包含到工程里。
3.Options for Target 选项卡在 Debug 栏选择仿真工为具 Use:ST-Link Debugger,如图依次 成4个步骤
然后点击Settting进行STLINK参数设置,我选用SW模式,JTAG占用比较多的I/O,容易影响其他外设的使用,速率不要选择太大,否则会出现问题。
接下来我们还需要在 Utilities 选项卡里面设置下载时的目标编程器
我们直接勾选 Use Debug Driver,即和调试一样,选择 ST LINK 来给目标器件的 FLASH 编程,然后点击 Settings 按钮,进入 FLASH 烧录设置
设置好后编写程序,将硬件连接,下载后就点击Debug后就可以实时跟踪程序,很方便的找到程序的bug。
- void GPIO_Configuration(void)
- {
- GPIO_InitTypeDef GPIO_InitStruct;
- GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
- GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;
- GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
- GPIO_Init(GPIOA, &GPIO_InitStruct);
-
- GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
- GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
- GPIO_Init(GPIOA, &GPIO_InitStruct);
- }
- void USART_Configuration(void)
- {
- USART_InitTypeDef USART_InitStruct;
- USART_InitStruct.USART_BaudRate=9600;
- USART_InitStruct.USART_WordLength=USART_WordLength_8b ;
- USART_InitStruct.USART_StopBits=USART_StopBits_1;
- USART_InitStruct.USART_Parity=USART_Parity_No;
- USART_InitStruct.USART_Mode=USART_Mode_Tx |USART_Mode_Rx;
- USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
-
- USART_Init(USART1,&USART_InitStruct);
-
- USART_Cmd(USART1, ENABLE);
-
- }
- void RCC_Configuration(void)
- {
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
-
- }
- void Delay_Ms(u16 time)
- u16 i,j;
- for(i=0;i<time;i++)
- for(j=10000;j>0;j--);
- }
- int main(void)
- {
- u8 i,data;
- RCC_Configuration();
- GPIO_Configuration();
- USART_Configuration();
- data='A';
- for(i=0;i<30;i++)
- {
- while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
- USART_SendData(USART1,data);
- data++;
- while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
- }
-
- return(0);
- }
复制代码
|
评分
-
查看全部评分
|