STM işlemciler için Microxplorer init kod üretme desteği...

Başlatan pisayisi, 23 Mart 2013, 11:34:46

pisayisi

Microxplorer  programı ile st işlemcilerde aynı pini kullanan pek çok donanımla ilgili program yazma sıkıntılarını görsel olarak bir miktar kolaylaştırabiliyorduk. Şimdi son versiyonda kullanım amacınıza uygun modda istediğiniz donanımı seçerek  pin remap işlemini otomatik olarak yaparak görsel olarak pek çok özelliği seçerek ilgili pin ile ilgili init kod görsel olarak üretebiliyorsunuz...

öcelikle file new config den aşağıdaki gibi stm324 discovery işlemciyi seçelim,

[IMG]http://imageshack.us/a/img835/1195/capture1tz.jpg[/img]

Soldaki menude işlemcimize ait donanımlar ve sağda pin diyagramı görülmekte, bu aşamada doğrudan ilgili pinin üstüne tıklayarak o pinin hangi donanım için kullanılcağını seçebilirsiniz,

[IMG]http://imageshack.us/a/img46/5465/capture2hw.jpg[/img]


Ben keyfi olarak tim1 üzerinde 6 adım pwm kullanan modu aktif etmek ve 6 adet pwm çıkışı almak istiyorum , soldaki menuden tim1 üstünde 6step pwm seçildiğinde sağda ilgili pinlerin yeşile döndüğünü ve bu donanım için map yapıldığını görceksiniz,

[IMG]http://imageshack.us/a/img824/3080/capture3gf.jpg[/img]

Şimdi üstten configurasyon menusunu seçtiğimizde seçtiğimiz donanımla ilgili olarak üretmemiz gereken init kod ile ilgili özellik karşımıza çıkıyor, burda gpio butonuna bastığımızda,

[IMG]http://imageshack.us/a/img195/322/capture4xp.jpg[/img]
[IMG]http://imageshack.us/a/img854/5693/capture6d.jpg[/img]

Aşağıdaki gibi tim1 üzerindeki pwm çıkışlarına ait gpio özelliklerini uygulamamıza uygun olarak seçiyoruz. Çıkış modu, sürme tipi pull up down direnç seçeneği ve hızı ayarlıyoruz.

Üst menüden tools generate code bastığımızda

mx_gpio.c
mx_main.c

üretilen init kod aşağıda bööylece baya bir zahmetten bizi kurtarmış oluyor. burda unutulmaması gereken tim1 ile ilgili hız , mod , tetikleme , frekans gib parametreleri kodumuza kendimiz eklememiz gerekecek. Tahminin ilerki versiyonlarda buna da çözüm getirecekler...
init kod dosyalarımız hazır oluyor ...

void mx_pinout_config(void) {
	/* Private typedef ---------------------------------------------------------*/
	GPIO_InitTypeDef GPIO_InitStruct;


	/** TIM1 GPIO Configuration	
		 PE8	 ------> TIM1_CH1N
		 PE9	 ------> TIM1_CH1
		 PE10	 ------> TIM1_CH2N
		 PE11	 ------> TIM1_CH2
		 PE12	 ------> TIM1_CH3N
		 PE13	 ------> TIM1_CH3
	*/


	/*Enable or disable the AHB1 peripheral clock */
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);

	/*Configure GPIO pin */
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOE, &GPIO_InitStruct);

	/*Configure GPIO pin alternate function */
	GPIO_PinAFConfig(GPIOE, GPIO_PinSource8, GPIO_AF_TIM1);

	/*Configure GPIO pin alternate function */
	GPIO_PinAFConfig(GPIOE, GPIO_PinSource9, GPIO_AF_TIM1);

	/*Configure GPIO pin alternate function */
	GPIO_PinAFConfig(GPIOE, GPIO_PinSource10, GPIO_AF_TIM1);

	/*Configure GPIO pin alternate function */
	GPIO_PinAFConfig(GPIOE, GPIO_PinSource11, GPIO_AF_TIM1);

	/*Configure GPIO pin alternate function */
	GPIO_PinAFConfig(GPIOE, GPIO_PinSource12, GPIO_AF_TIM1);

	/*Configure GPIO pin alternate function */
	GPIO_PinAFConfig(GPIOE, GPIO_PinSource13, GPIO_AF_TIM1);
}

/* USER CODE BEGIN 2 */

/* USER CODE END 2 */

Murat

muhittin_kaplan


mozkan87

Güzel oldu bu özellik gerçekten büyük kolaylık sağladı.