I have some troubles to activate the HID on STM32F103C8T6 board.
Thats my test program:
Code: Select all
program MyProject;
{ Declarations section }
var cnt, nread : byte;
var readbuff : array[64] of byte;
var writebuff : array[64] of byte;
counter : dword;
begin
GPIO_Digital_Output(@GPIOb_BASE, _GPIO_PINMASK_0);
GPIO_Digital_Output(@GPIOb_BASE, _GPIO_PINMASK_1);
GPIOb_ODR.b0 := 0; // LED1
GPIOb_ODR.b1 := 0; // LED2
counter := 0;
GPIOb_ODR.b0 := 1;
HID_Enable(@readbuff,@writebuff);
while TRUE do
begin
GPIOb_ODR.b1 := 1;
USB_Polling_Proc();
nread := HID_Read();
GPIOb_ODR.b1 := 0;
if (nread <> 0) then
begin
for cnt:=0 to 63 do
writebuff[cnt]:=readbuff[cnt];
HID_Write(@writebuff,64);
end ;
counter := counter +1;
GPIOb_ODR.b0 := counter.b16;
end;
end.
The program stopps allways at USB_Polling_Proc(); or HID_Read();
I would like to init the USB Module with GPIO_Alternate_Function_Enable but i can not find the correct module in the list.
My project settings:
<?xml version="1.0"?>
<MCU_DEVICE_FLAGS>
<DEVICE>
<DEVICE_NAME>STM32F103C8</DEVICE_NAME>
<SETTINGS>
<COUNT>15</COUNT>
<SETTING0>
<NAME>Internal high-speed clock enable</NAME>
<DESCRIPTION>internal 8 MHz RC oscillator ON</DESCRIPTION>
</SETTING0>
<SETTING1>
<NAME>External high-speed clock enable</NAME>
<DESCRIPTION>HSE oscillator OFF</DESCRIPTION>
</SETTING1>
<SETTING2>
<NAME>External high-speed clock bypass</NAME>
<DESCRIPTION>HSE oscillator not bypassed</DESCRIPTION>
</SETTING2>
<SETTING3>
<NAME>Clock security system enable</NAME>
<DESCRIPTION>Clock detector OFF</DESCRIPTION>
</SETTING3>
<SETTING4>
<NAME>PLL enable</NAME>
<DESCRIPTION>PLL ON</DESCRIPTION>
</SETTING4>
<SETTING5>
<NAME>System clock Switch</NAME>
<DESCRIPTION>PLL selected as system clock</DESCRIPTION>
</SETTING5>
<SETTING6>
<NAME>Set and cleared by software to control the division factor of the AHB clock</NAME>
<DESCRIPTION>SYSCLK not divided</DESCRIPTION>
</SETTING6>
<SETTING7>
<NAME>APB low-speed prescaler (APB1)</NAME>
<DESCRIPTION>HCLK not divided </DESCRIPTION>
</SETTING7>
<SETTING8>
<NAME>APB high-speed prescaler (APB2)</NAME>
<DESCRIPTION>HCLK not divided </DESCRIPTION>
</SETTING8>
<SETTING9>
<NAME>ADC prescaler</NAME>
<DESCRIPTION>PCLK2 divided by 2 </DESCRIPTION>
</SETTING9>
<SETTING10>
<NAME>PLL entry clock source</NAME>
<DESCRIPTION>HSI oscillator clock / 2 selected as PLL input clock</DESCRIPTION>
</SETTING10>
<SETTING11>
<NAME>HSE divider for PLL entry</NAME>
<DESCRIPTION>HSE clock not divided</DESCRIPTION>
</SETTING11>
<SETTING12>
<NAME>PLL multiplication factor</NAME>
<DESCRIPTION>PLL input clock x 16</DESCRIPTION>
</SETTING12>
<SETTING13>
<NAME>USB prescaler</NAME>
<DESCRIPTION>PLL clock is not divided</DESCRIPTION>
</SETTING13>
<SETTING14>
<NAME>Microcontroller clock output</NAME>
<DESCRIPTION>No clock</DESCRIPTION>
</SETTING14>
</SETTINGS>
</DEVICE>
</MCU_DEVICE_FLAGS>
Have somebody tried this with the same CPU?
Thanks in advance for any answers.
Best regards
Stefan